Impostazioni progetto

library(ggplot2)

plot_theme = theme_minimal() +
    theme(
        plot.title = element_text(face = "bold", hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        axis.line = element_line(color = "darkgrey", size = 0.4),
        axis.ticks = element_line(color = "black"))
theme_set(plot_theme)

House Price - Univariata Quantitativa

Lettura dati

HP <- read.csv2(
    "./house_price.csv", 
    sep = ",", 
    stringsAsFactors = T,
    row.names=1)

Scelta delle colonne

column_selection <- function(data){
  HP_numeric_bool = sapply(data, is.numeric)
  HP_numeric_fcolnames = names(data[HP_numeric_bool])
  # Rimozione delle colonne
  HP_numeric_fcolnames = HP_numeric_fcolnames[c(-1,-4,-5)]
  print("Colonne scelte: ")
  print(HP_numeric_fcolnames)
  return(HP_numeric_fcolnames)
}
HP_numeric_colnames = column_selection(HP)
## [1] "Colonne scelte: "
##  [1] "LotFrontage"   "LotArea"       "YearBuilt"     "YearRemodAdd" 
##  [5] "MasVnrArea"    "BsmtFinSF1"    "BsmtFinSF2"    "BsmtUnfSF"    
##  [9] "TotalBsmtSF"   "X1stFlrSF"     "X2ndFlrSF"     "LowQualFinSF" 
## [13] "GrLivArea"     "BsmtFullBath"  "BsmtHalfBath"  "FullBath"     
## [17] "HalfBath"      "BedroomAbvGr"  "KitchenAbvGr"  "TotRmsAbvGrd" 
## [21] "Fireplaces"    "GarageYrBlt"   "GarageCars"    "GarageArea"   
## [25] "WoodDeckSF"    "OpenPorchSF"   "EnclosedPorch" "X3SsnPorch"   
## [29] "ScreenPorch"   "PoolArea"      "MiscVal"       "MoSold"       
## [33] "YrSold"        "SalePrice"

Analisi Primaria

Analisi_Primaria <- function(data){
  print(paste("Numeri di osservazione: ",ncol(data)))
  print(paste("Numeri di variabili: ",nrow(data)))
}
Analisi_Primaria(HP[ ,HP_numeric_colnames])
## [1] "Numeri di osservazione:  34"
## [1] "Numeri di variabili:  1460"
str(HP[,HP_numeric_colnames])
## 'data.frame':    1460 obs. of  34 variables:
##  $ LotFrontage  : int  65 80 68 60 84 85 75 NA 51 50 ...
##  $ LotArea      : int  8450 9600 11250 9550 14260 14115 10084 10382 6120 7420 ...
##  $ YearBuilt    : int  2003 1976 2001 1915 2000 1993 2004 1973 1931 1939 ...
##  $ YearRemodAdd : int  2003 1976 2002 1970 2000 1995 2005 1973 1950 1950 ...
##  $ MasVnrArea   : int  196 0 162 0 350 0 186 240 0 0 ...
##  $ BsmtFinSF1   : int  706 978 486 216 655 732 1369 859 0 851 ...
##  $ BsmtFinSF2   : int  0 0 0 0 0 0 0 32 0 0 ...
##  $ BsmtUnfSF    : int  150 284 434 540 490 64 317 216 952 140 ...
##  $ TotalBsmtSF  : int  856 1262 920 756 1145 796 1686 1107 952 991 ...
##  $ X1stFlrSF    : int  856 1262 920 961 1145 796 1694 1107 1022 1077 ...
##  $ X2ndFlrSF    : int  854 0 866 756 1053 566 0 983 752 0 ...
##  $ LowQualFinSF : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ GrLivArea    : int  1710 1262 1786 1717 2198 1362 1694 2090 1774 1077 ...
##  $ BsmtFullBath : int  1 0 1 1 1 1 1 1 0 1 ...
##  $ BsmtHalfBath : int  0 1 0 0 0 0 0 0 0 0 ...
##  $ FullBath     : int  2 2 2 1 2 1 2 2 2 1 ...
##  $ HalfBath     : int  1 0 1 0 1 1 0 1 0 0 ...
##  $ BedroomAbvGr : int  3 3 3 3 4 1 3 3 2 2 ...
##  $ KitchenAbvGr : int  1 1 1 1 1 1 1 1 2 2 ...
##  $ TotRmsAbvGrd : int  8 6 6 7 9 5 7 7 8 5 ...
##  $ Fireplaces   : int  0 1 1 1 1 0 1 2 2 2 ...
##  $ GarageYrBlt  : int  2003 1976 2001 1998 2000 1993 2004 1973 1931 1939 ...
##  $ GarageCars   : int  2 2 2 3 3 2 2 2 2 1 ...
##  $ GarageArea   : int  548 460 608 642 836 480 636 484 468 205 ...
##  $ WoodDeckSF   : int  0 298 0 0 192 40 255 235 90 0 ...
##  $ OpenPorchSF  : int  61 0 42 35 84 30 57 204 0 4 ...
##  $ EnclosedPorch: int  0 0 0 272 0 0 0 228 205 0 ...
##  $ X3SsnPorch   : int  0 0 0 0 0 320 0 0 0 0 ...
##  $ ScreenPorch  : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ PoolArea     : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ MiscVal      : int  0 0 0 0 0 700 0 350 0 0 ...
##  $ MoSold       : int  2 5 9 2 12 10 8 11 4 1 ...
##  $ YrSold       : int  2008 2007 2008 2006 2008 2009 2007 2009 2008 2008 ...
##  $ SalePrice    : int  208500 181500 223500 140000 250000 143000 307000 200000 129900 118000 ...

Analisi Univariata

univariate_analysis <- function(data, colname) {
  result = list()
  
  result[[colname]] = list(
    # Summary statistics including min, 1st and 3rd quartile, mean, median, max
    Summary = summary(data),
    # Variance
    Variance = round(var(data), 2),
    # Standard Deviation
    Standard_Deviation = round(sd(data), 2),
    # Mode calculation
    Moda = Mode(data)
  )
  return(result)
}

Mode <- function(data) {
  uniq_vals = unique(data)
  tab = tabulate(match(data, uniq_vals))
  modes = uniq_vals[tab == max(tab)]
  list(Mode = modes, Frequency = max(tab))
}

Analisi non modificato

sum_info_h = lapply(HP_numeric_colnames, function(ele) {
  colummn = na.omit(HP[, ele])
  univariate_analysis(colummn, ele)
})

Funzione di Visualizazione continuo

visualization_continuos <- function(data,sumary,colname){
  par(mfrow = c(2,2))
  print(sumary)
  boxplot(data, horizontal = T, main = paste("Boxplot of ", colname))
  hist(data, probability = T, col = 2, main = paste("Hist of ", colname))
  curve(dnorm(x, mean = mean(data), sd = sd(data)),
        add=T, col = 4)
  print(density(data))
  plot(density(data), main = paste("Desnity Distribution of ", colname))
  qqnorm(data, col = 3, main = paste("QQnorm of ", colname))
  qqline(data, col = 5, pch = 10)
}

Funzione di visualizazione discreta

visualization_discrete <- function(data,sumary,colname){
  par(mfrow = c(1,1))
  print(sumary)
  print("freq: ")
  cat("\n")
  print(table(data))
  cat("\n")
  print("percintile: ")
  cat("\n")
  print(prop.table(table(data))*100)
  cat("\n")
  barplot(table(data), col = 2, main = paste("Barplot of ", colname))
}

Rimozione degli zero

rm_0 <- function(data){
  imp_data = data
  imp_data[imp_data == 0] = NA
  imp_data = na.omit(imp_data)
  return(imp_data)
}

Rimozione degli outlier attraverso intervallo di confidenza

rm_oultiers <- function(data, CI){
  mean_data = mean(data)
  sd_data = sd(data)
  confidence_level = CI
  z_score = qnorm((1 + confidence_level) / 2)
  
  lower_bound = mean_data - z_score * sd_data
  upper_bound = mean_data + z_score * sd_data
  
  data_in_ci = data[data >= lower_bound & data <= upper_bound]
  return(data_in_ci)
}

Analisi

LotFrontage

visualization_continuos(na.omit(HP[,"LotFrontage"]), sum_info_h[1],"LotFrontage")
## [[1]]
## [[1]]$LotFrontage
## [[1]]$LotFrontage$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   21.00   59.00   69.00   70.05   80.00  313.00 
## 
## [[1]]$LotFrontage$Variance
## [1] 589.75
## 
## [[1]]$LotFrontage$Standard_Deviation
## [1] 24.28
## 
## [[1]]$LotFrontage$Moda
## [[1]]$LotFrontage$Moda$Mode
## [1] 60
## 
## [[1]]$LotFrontage$Moda$Frequency
## [1] 143
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1201 obs.);  Bandwidth 'bw' = 3.415
## 
##        x                y            
##  Min.   : 10.75   Min.   :0.0000000  
##  1st Qu.: 88.88   1st Qu.:0.0000000  
##  Median :167.00   Median :0.0001649  
##  Mean   :167.00   Mean   :0.0031969  
##  3rd Qu.:245.12   3rd Qu.:0.0032738  
##  Max.   :323.25   Max.   :0.0238537

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte degli lotti ha un percorso verso la strada compreso tra 59 e 80 piedi, essendo rispettivamente il 1° e il 3° quantile e maggiormente alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di outlier

rm_outlier_data = rm_oultiers(na.omit(HP[,"LotFrontage"]),.90)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"LotFrontage"),"LotFrontage")
## $LotFrontage
## $LotFrontage$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   32.00   60.00   69.00   68.91   80.00  109.00 
## 
## $LotFrontage$Variance
## [1] 261.63
## 
## $LotFrontage$Standard_Deviation
## [1] 16.17
## 
## $LotFrontage$Moda
## $LotFrontage$Moda$Mode
## [1] 60
## 
## $LotFrontage$Moda$Frequency
## [1] 143
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1100 obs.);  Bandwidth 'bw' = 3.31
## 
##        x                y            
##  Min.   : 22.07   Min.   :5.250e-06  
##  1st Qu.: 46.28   1st Qu.:3.296e-03  
##  Median : 70.50   Median :7.436e-03  
##  Mean   : 70.50   Mean   :1.031e-02  
##  3rd Qu.: 94.72   3rd Qu.:1.884e-02  
##  Max.   :118.93   Max.   :2.641e-02

Possiamo osservare che la distribuzione segue per lo piu quella gaussiana e che la maggior parte degli lotti ha un percorso verso la strada compreso tra 60 e 80 piedi, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma.

LotArea

visualization_continuos(na.omit(HP[,"LotArea"]), sum_info_h[2],"LotArea")
## [[1]]
## [[1]]$LotArea
## [[1]]$LotArea$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1300    7554    9478   10517   11602  215245 
## 
## [[1]]$LotArea$Variance
## [1] 99625650
## 
## [[1]]$LotArea$Standard_Deviation
## [1] 9981.26
## 
## [[1]]$LotArea$Moda
## [[1]]$LotArea$Moda$Mode
## [1] 7200
## 
## [[1]]$LotArea$Moda$Frequency
## [1] 25
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 633.2
## 
##        x                  y            
##  Min.   :  -599.5   Min.   :0.000e+00  
##  1st Qu.: 53836.5   1st Qu.:0.000e+00  
##  Median :108272.5   Median :0.000e+00  
##  Mean   :108272.5   Mean   :4.587e-06  
##  3rd Qu.:162708.5   3rd Qu.:2.697e-07  
##  Max.   :217144.5   Max.   :1.404e-04

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte degli lotti ha un area compreso tra 7554 e 11602 piedi^2, essendo rispettivamente il 1° e il 3° quantile e e con maggior densita alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di outlier

rm_outlier_data = rm_oultiers(na.omit(HP[,"LotArea"]),.50)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"LotArea"),"LotArea")
## $LotArea
## $LotArea$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    3842    7877    9505    9666   11325   17217 
## 
## $LotArea$Variance
## [1] 7453350
## 
## $LotArea$Standard_Deviation
## [1] 2730.08
## 
## $LotArea$Moda
## $LotArea$Moda$Mode
## [1] 7200
## 
## $LotArea$Moda$Frequency
## [1] 25
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1299 obs.);  Bandwidth 'bw' = 552.1
## 
##        x               y            
##  Min.   : 2186   Min.   :2.276e-08  
##  1st Qu.: 6358   1st Qu.:1.739e-05  
##  Median :10530   Median :4.514e-05  
##  Mean   :10530   Mean   :5.987e-05  
##  3rd Qu.:14701   3rd Qu.:1.008e-04  
##  Max.   :18873   Max.   :1.621e-04

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte degli lotti ha un area compreso tra 7500 e 11362 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Da notare che si butano il 50% dei dat

YearBuilt

visualization_continuos(na.omit(HP[,"YearBuilt"]), sum_info_h[3],"YearBuilt")
## [[1]]
## [[1]]$YearBuilt
## [[1]]$YearBuilt$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1872    1954    1973    1971    2000    2010 
## 
## [[1]]$YearBuilt$Variance
## [1] 912.22
## 
## [[1]]$YearBuilt$Standard_Deviation
## [1] 30.2
## 
## [[1]]$YearBuilt$Moda
## [[1]]$YearBuilt$Moda$Mode
## [1] 2006
## 
## [[1]]$YearBuilt$Moda$Frequency
## [1] 67
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 6.33
## 
##        x              y            
##  Min.   :1853   Min.   :6.120e-07  
##  1st Qu.:1897   1st Qu.:5.052e-04  
##  Median :1941   Median :4.774e-03  
##  Mean   :1941   Mean   :5.677e-03  
##  3rd Qu.:1985   3rd Qu.:9.652e-03  
##  Max.   :2029   Max.   :1.871e-02

Possiamo dedurre che la distribuzione è negativamente asimetrica e quindi il numero di edifici costruiti crescono ogni anno La maggior parte degli edifici erano costruiti fra 1954 e 2000, essendo rispettivamente il 1° e il 3° quantile e l’anno con è il massimo costruitto è nel 2006 con 67 edifici

YearRemodAd

visualization_continuos(na.omit(HP[,"YearRemodAdd"]), sum_info_h[4], "YearBuilt")
## [[1]]
## [[1]]$YearRemodAdd
## [[1]]$YearRemodAdd$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1950    1967    1994    1985    2004    2010 
## 
## [[1]]$YearRemodAdd$Variance
## [1] 426.23
## 
## [[1]]$YearRemodAdd$Standard_Deviation
## [1] 20.65
## 
## [[1]]$YearRemodAdd$Moda
## [[1]]$YearRemodAdd$Moda$Mode
## [1] 1950
## 
## [[1]]$YearRemodAdd$Moda$Frequency
## [1] 178
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 4.327
## 
##        x              y            
##  Min.   :1937   Min.   :2.807e-05  
##  1st Qu.:1959   1st Qu.:7.214e-03  
##  Median :1980   Median :1.023e-02  
##  Mean   :1980   Mean   :1.162e-02  
##  3rd Qu.:2001   3rd Qu.:1.389e-02  
##  Max.   :2023   Max.   :3.250e-02

Possiamo notare che la distribuzione ha un pico negli anni 50 con il massimo di rimodellazione nel 1950 con 178 edifici. Dopodichè, si ha un calo quasi immediato e i numeri di edifici rimodellati resta quasi costante fino agli anni 80 dove fra il 1980 al 1985 si nota il minimo numero di rimodellazione. Dopodiche, la distribuzione inizia a crescere quasi costantemente con pico negli anni fra 2000 e 2005

MasVnrArea

visualization_continuos(na.omit(HP[,"MasVnrArea"]), sum_info_h[5],"MasVnrArea")
## [[1]]
## [[1]]$MasVnrArea
## [[1]]$MasVnrArea$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     0.0     0.0     0.0   103.7   166.0  1600.0 
## 
## [[1]]$MasVnrArea$Variance
## [1] 32784.97
## 
## [[1]]$MasVnrArea$Standard_Deviation
## [1] 181.07
## 
## [[1]]$MasVnrArea$Moda
## [[1]]$MasVnrArea$Moda$Mode
## [1] 0
## 
## [[1]]$MasVnrArea$Moda$Frequency
## [1] 861
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1452 obs.);  Bandwidth 'bw' = 25.99
## 
##        x                 y            
##  Min.   : -77.98   Min.   :3.000e-09  
##  1st Qu.: 361.01   1st Qu.:9.362e-06  
##  Median : 800.00   Median :4.165e-05  
##  Mean   : 800.00   Mean   :5.685e-04  
##  3rd Qu.:1238.99   3rd Qu.:3.960e-04  
##  Max.   :1677.98   Max.   :9.300e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica. Si puo osservare che l’area di MasVnrArea è prelevantemete 0 qundi non applicato. Per fare un analisi sugli edifici che hanno il Masonry veneer, serve ignorare quelli senza

Rimozione degli zero

rm_0_data = rm_0(na.omit(HP[,"MasVnrArea"]))
visualization_continuos(rm_0_data, univariate_analysis(rm_0_data,"MasVnrArea"),"MasVnrArea")
## $MasVnrArea
## $MasVnrArea$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     1.0   113.0   203.0   254.7   330.5  1600.0 
## 
## $MasVnrArea$Variance
## [1] 42084.13
## 
## $MasVnrArea$Standard_Deviation
## [1] 205.14
## 
## $MasVnrArea$Moda
## $MasVnrArea$Moda$Mode
## [1] 180 108  72
## 
## $MasVnrArea$Moda$Frequency
## [1] 8
## 
## Call:
##  density.default(x = data)
## 
## Data: data (591 obs.);   Bandwidth 'bw' = 40.76
## 
##        x                y            
##  Min.   :-121.3   Min.   :1.888e-07  
##  1st Qu.: 339.6   1st Qu.:1.440e-05  
##  Median : 800.5   Median :7.853e-05  
##  Mean   : 800.5   Mean   :5.419e-04  
##  3rd Qu.:1261.4   3rd Qu.:6.832e-04  
##  Max.   :1722.3   Max.   :2.868e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte degli edifici ha un area coperto da Masonry veneer tra 113.0 e 330.5 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di oultier

rm_outlier_data = rm_oultiers(rm_0_data,.90)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"MasVnrArea"),"MasVnrArea")
## $MasVnrArea
## $MasVnrArea$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     1.0   108.0   186.0   213.5   297.8   584.0 
## 
## $MasVnrArea$Variance
## [1] 17023.88
## 
## $MasVnrArea$Standard_Deviation
## [1] 130.48
## 
## $MasVnrArea$Moda
## $MasVnrArea$Moda$Mode
## [1] 180 108  72
## 
## $MasVnrArea$Moda$Frequency
## [1] 8
## 
## Call:
##  density.default(x = data)
## 
## Data: data (550 obs.);   Bandwidth 'bw' = 33.24
## 
##        x                y            
##  Min.   :-98.73   Min.   :7.966e-07  
##  1st Qu.: 96.89   1st Qu.:2.708e-04  
##  Median :292.50   Median :9.103e-04  
##  Mean   :292.50   Mean   :1.277e-03  
##  3rd Qu.:488.11   3rd Qu.:2.248e-03  
##  Max.   :683.73   Max.   :3.137e-03

Possiamo dedurre nella distribuzione che la maggior parte degli edifici ha un area coperto da Masonry veneer tra 108.5 e 304.0 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma.

BsmtFinSF1

visualization_continuos(na.omit(HP[,"BsmtFinSF1"]), sum_info_h[6],"BsmtFinSF1")
## [[1]]
## [[1]]$BsmtFinSF1
## [[1]]$BsmtFinSF1$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     0.0     0.0   383.5   443.6   712.2  5644.0 
## 
## [[1]]$BsmtFinSF1$Variance
## [1] 208025.5
## 
## [[1]]$BsmtFinSF1$Standard_Deviation
## [1] 456.1
## 
## [[1]]$BsmtFinSF1$Moda
## [[1]]$BsmtFinSF1$Moda$Mode
## [1] 0
## 
## [[1]]$BsmtFinSF1$Moda$Frequency
## [1] 467
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 95.59
## 
##        x                y            
##  Min.   :-286.8   Min.   :0.000e+00  
##  1st Qu.:1267.6   1st Qu.:0.000e+00  
##  Median :2822.0   Median :4.431e-07  
##  Mean   :2822.0   Mean   :1.606e-04  
##  3rd Qu.:4376.4   3rd Qu.:1.658e-04  
##  Max.   :5930.8   Max.   :1.525e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica. Si puo osservare che l’area finito di semiterrato finito di tipo 1 è prelevantemete 0 qundi non costruitto. Per fare un analisi sugli edifici che hanno il semiterrato finito di tipo 1, serve ignorare quelli senza

Rimozione degli zero

rm_0_data = rm_0(na.omit(HP[,"BsmtFinSF1"]))
visualization_continuos(rm_0_data, univariate_analysis(rm_0_data,"BsmtFinSF1"),"BsmtFinSF1")
## $BsmtFinSF1
## $BsmtFinSF1$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     2.0   371.0   604.0   652.3   867.0  5644.0 
## 
## $BsmtFinSF1$Variance
## [1] 169727.8
## 
## $BsmtFinSF1$Standard_Deviation
## [1] 411.98
## 
## $BsmtFinSF1$Moda
## $BsmtFinSF1$Moda$Mode
## [1] 24
## 
## $BsmtFinSF1$Moda$Frequency
## [1] 12
## 
## Call:
##  density.default(x = data)
## 
## Data: data (993 obs.);   Bandwidth 'bw' = 83.8
## 
##        x                y            
##  Min.   :-249.4   Min.   :0.000e+00  
##  1st Qu.:1286.8   1st Qu.:0.000e+00  
##  Median :2823.0   Median :4.138e-07  
##  Mean   :2823.0   Mean   :1.626e-04  
##  3rd Qu.:4359.2   3rd Qu.:1.431e-04  
##  Max.   :5895.4   Max.   :1.121e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte degli edifici ha un semiterrato finito di tipo 1 di area compresa tra 371.0 e 867.0 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di outlier

rm_outlier_data = rm_oultiers(rm_0_data,.95)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"BsmtFinSF1"),"BsmtFinSF1")
## $BsmtFinSF1
## $BsmtFinSF1$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     2.0   364.8   594.5   621.4   833.8  1456.0 
## 
## $BsmtFinSF1$Variance
## [1] 119445.6
## 
## $BsmtFinSF1$Standard_Deviation
## [1] 345.61
## 
## $BsmtFinSF1$Moda
## $BsmtFinSF1$Moda$Mode
## [1] 24
## 
## $BsmtFinSF1$Moda$Frequency
## [1] 12
## 
## Call:
##  density.default(x = data)
## 
## Data: data (968 obs.);   Bandwidth 'bw' = 78.64
## 
##        x                y            
##  Min.   :-233.9   Min.   :4.036e-07  
##  1st Qu.: 247.5   1st Qu.:1.898e-04  
##  Median : 729.0   Median :4.584e-04  
##  Mean   : 729.0   Mean   :5.187e-04  
##  3rd Qu.:1210.5   3rd Qu.:8.656e-04  
##  Max.   :1691.9   Max.   :1.159e-03

Possiamo dedurre nella distribuzione semi-normato che la maggior parte degli edifici ha un semiterrato finito di tipo 1 di area compresa tra 364.8 e 833.8 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma.

BsmtFinSF2

visualization_continuos(na.omit(HP[,"BsmtFinSF2"]), sum_info_h[7],"BsmtFinSF2")
## [[1]]
## [[1]]$BsmtFinSF2
## [[1]]$BsmtFinSF2$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    0.00    0.00   46.55    0.00 1474.00 
## 
## [[1]]$BsmtFinSF2$Variance
## [1] 26023.91
## 
## [[1]]$BsmtFinSF2$Standard_Deviation
## [1] 161.32
## 
## [[1]]$BsmtFinSF2$Moda
## [[1]]$BsmtFinSF2$Moda$Mode
## [1] 0
## 
## [[1]]$BsmtFinSF2$Moda$Frequency
## [1] 1293
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 33.81
## 
##        x                y            
##  Min.   :-101.4   Min.   :0.000e+00  
##  1st Qu.: 317.8   1st Qu.:1.196e-05  
##  Median : 737.0   Median :5.220e-05  
##  Mean   : 737.0   Mean   :5.951e-04  
##  3rd Qu.:1156.2   3rd Qu.:1.424e-04  
##  Max.   :1575.4   Max.   :1.047e-02

Possiamo dedurre che la distribuzione è positivamente asimetrica. Si puo osservare che l’area finito di semiterrato finito di tipo 2 è prelevantemete 0 qundi non costruitto. Per fare un analisi sugli edifici che hanno il semiterrato finito di tipo 2, serve ignorare quelli senza

Rimozione degli zero

rm_0_data = rm_0(na.omit(HP[,"BsmtFinSF2"]))
visualization_continuos(rm_0_data, univariate_analysis(rm_0_data,"BsmtFinSF2"),"BsmtFinSF2")
## $BsmtFinSF2
## $BsmtFinSF2$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    28.0   178.5   354.0   407.0   551.0  1474.0 
## 
## $BsmtFinSF2$Variance
## [1] 81173.38
## 
## $BsmtFinSF2$Standard_Deviation
## [1] 284.91
## 
## $BsmtFinSF2$Moda
## $BsmtFinSF2$Moda$Mode
## [1] 180
## 
## $BsmtFinSF2$Moda$Frequency
## [1] 5
## 
## Call:
##  density.default(x = data)
## 
## Data: data (167 obs.);   Bandwidth 'bw' = 89.89
## 
##        x                y            
##  Min.   :-241.7   Min.   :2.985e-07  
##  1st Qu.: 254.7   1st Qu.:2.557e-05  
##  Median : 751.0   Median :2.538e-04  
##  Mean   : 751.0   Mean   :5.032e-04  
##  3rd Qu.:1247.3   3rd Qu.:1.001e-03  
##  Max.   :1743.7   Max.   :1.592e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte degli edifici ha un semiterrato finito di tipo 2 di area compresa tra 178.5 e 551.0 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di outlier

rm_outlier_data = rm_oultiers(rm_0_data,.95)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"BsmtFinSF2"),"BsmtFinSF2")
## $BsmtFinSF2
## $BsmtFinSF2$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    28.0   173.8   329.0   358.1   512.2   906.0 
## 
## $BsmtFinSF2$Variance
## [1] 49340.55
## 
## $BsmtFinSF2$Standard_Deviation
## [1] 222.13
## 
## $BsmtFinSF2$Moda
## $BsmtFinSF2$Moda$Mode
## [1] 180
## 
## $BsmtFinSF2$Moda$Frequency
## [1] 5
## 
## Call:
##  density.default(x = data)
## 
## Data: data (156 obs.);   Bandwidth 'bw' = 72.81
## 
##        x                y            
##  Min.   :-190.4   Min.   :5.917e-07  
##  1st Qu.: 138.3   1st Qu.:1.521e-04  
##  Median : 467.0   Median :7.180e-04  
##  Mean   : 467.0   Mean   :7.597e-04  
##  3rd Qu.: 795.7   3rd Qu.:1.262e-03  
##  Max.   :1124.4   Max.   :1.840e-03

Possiamo dedurre nella distribuzione semi-normato che la maggior parte degli edifici ha un semiterrato finito di tipo 2 di area compresa tra 173.8 e 512.2 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma.

BsmtUnfSF

visualization_continuos(na.omit(HP[,"BsmtUnfSF"]), sum_info_h[8],"BsmtUnfSF")
## [[1]]
## [[1]]$BsmtUnfSF
## [[1]]$BsmtUnfSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     0.0   223.0   477.5   567.2   808.0  2336.0 
## 
## [[1]]$BsmtUnfSF$Variance
## [1] 195246.4
## 
## [[1]]$BsmtUnfSF$Standard_Deviation
## [1] 441.87
## 
## [[1]]$BsmtUnfSF$Moda
## [[1]]$BsmtUnfSF$Moda$Mode
## [1] 0
## 
## [[1]]$BsmtUnfSF$Moda$Frequency
## [1] 118
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 91.5
## 
##        x                y            
##  Min.   :-274.5   Min.   :3.380e-08  
##  1st Qu.: 446.7   1st Qu.:2.885e-05  
##  Median :1168.0   Median :2.109e-04  
##  Mean   :1168.0   Mean   :3.462e-04  
##  3rd Qu.:1889.3   3rd Qu.:7.062e-04  
##  Max.   :2610.5   Max.   :9.942e-04

Possiamo dedurre che la distribuzione è positivamente asimetrica. Si puo osservare che l’area di semiterrato non finito è prelevantemete 0 qundi non costruitto. Per fare un analisi sugli edifici che hanno il semiterrato non finito, serve ignorare quelli con

Rimozione degli zero

rm_0_data = rm_0(na.omit(HP[,"BsmtUnfSF"]))
visualization_continuos(rm_0_data, univariate_analysis(rm_0_data,"BsmtUnfSF"),"BsmtUnfSF")
## $BsmtUnfSF
## $BsmtUnfSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    14.0   288.0   536.0   617.1   843.2  2336.0 
## 
## $BsmtUnfSF$Variance
## [1] 181624.3
## 
## $BsmtUnfSF$Standard_Deviation
## [1] 426.17
## 
## $BsmtUnfSF$Moda
## $BsmtUnfSF$Moda$Mode
## [1] 728
## 
## $BsmtUnfSF$Moda$Frequency
## [1] 9
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1342 obs.);  Bandwidth 'bw' = 88.32
## 
##        x              y            
##  Min.   :-251   Min.   :3.810e-08  
##  1st Qu.: 462   1st Qu.:2.536e-05  
##  Median :1175   Median :2.098e-04  
##  Mean   :1175   Mean   :3.503e-04  
##  3rd Qu.:1888   3rd Qu.:7.008e-04  
##  Max.   :2601   Max.   :1.084e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte degli edifici ha un semiterrato non finito di area compresa tra 288.0 e 843.2 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di outlier

rm_outlier_data = rm_oultiers(rm_0_data,.95)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"BsmtUnfSF"),"BsmtUnfSF")
## $BsmtUnfSF
## $BsmtUnfSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    14.0   278.5   495.0   554.4   780.0  1450.0 
## 
## $BsmtUnfSF$Variance
## [1] 120004.2
## 
## $BsmtUnfSF$Standard_Deviation
## [1] 346.42
## 
## $BsmtUnfSF$Moda
## $BsmtUnfSF$Moda$Mode
## [1] 728
## 
## $BsmtUnfSF$Moda$Frequency
## [1] 9
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1267 obs.);  Bandwidth 'bw' = 74.69
## 
##        x                y            
##  Min.   :-210.1   Min.   :2.806e-07  
##  1st Qu.: 261.0   1st Qu.:1.939e-04  
##  Median : 732.0   Median :4.555e-04  
##  Mean   : 732.0   Mean   :5.302e-04  
##  3rd Qu.:1203.0   3rd Qu.:8.862e-04  
##  Max.   :1674.1   Max.   :1.164e-03

Possiamo dedurre nella distribuzione semi-normato che la maggior parte degli edifici ha un semiterrato non finito di area compresa tra 278.5 e 780.0 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma.

TotalBsmtSF

visualization_continuos(na.omit(HP[,"TotalBsmtSF"]), sum_info_h[9],"TotalBsmtSF")
## [[1]]
## [[1]]$TotalBsmtSF
## [[1]]$TotalBsmtSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     0.0   795.8   991.5  1057.4  1298.2  6110.0 
## 
## [[1]]$TotalBsmtSF$Variance
## [1] 192462.4
## 
## [[1]]$TotalBsmtSF$Standard_Deviation
## [1] 438.71
## 
## [[1]]$TotalBsmtSF$Moda
## [[1]]$TotalBsmtSF$Moda$Mode
## [1] 0
## 
## [[1]]$TotalBsmtSF$Moda$Frequency
## [1] 37
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 78.6
## 
##        x                y            
##  Min.   :-235.8   Min.   :0.000e+00  
##  1st Qu.:1409.6   1st Qu.:0.000e+00  
##  Median :3055.0   Median :3.073e-06  
##  Mean   :3055.0   Mean   :1.518e-04  
##  3rd Qu.:4700.4   3rd Qu.:1.024e-04  
##  Max.   :6345.8   Max.   :1.254e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica. Si puo osservare che l’area totale semiterrato è prelevantemete 0 qundi non costruitto. Per fare un analisi sugli edifici che hanno il semiterrato non finito, serve ignorare quelli senza

Rimozione degli zero

rm_0_data = rm_0(na.omit(HP[,"TotalBsmtSF"]))
visualization_continuos(rm_0_data, univariate_analysis(rm_0_data,"TotalBsmtSF"),"TotalBsmtSF")
## $TotalBsmtSF
## $TotalBsmtSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   105.0   810.5  1004.0  1084.9  1309.5  6110.0 
## 
## $TotalBsmtSF$Variance
## [1] 167619.6
## 
## $TotalBsmtSF$Standard_Deviation
## [1] 409.41
## 
## $TotalBsmtSF$Moda
## $TotalBsmtSF$Moda$Mode
## [1] 864
## 
## $TotalBsmtSF$Moda$Frequency
## [1] 35
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1423 obs.);  Bandwidth 'bw' = 78.45
## 
##        x                y            
##  Min.   :-130.4   Min.   :0.000e+00  
##  1st Qu.:1488.6   1st Qu.:0.000e+00  
##  Median :3107.5   Median :2.040e-06  
##  Mean   :3107.5   Mean   :1.543e-04  
##  3rd Qu.:4726.4   3rd Qu.:8.769e-05  
##  Max.   :6345.4   Max.   :1.287e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte degli edifici ha un semiterrato di area compresa tra 810.5 e 1309.5 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di outlier

rm_outlier_data = rm_oultiers(rm_0_data,.95)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"TotalBsmtSF"),"TotalBsmtSF")
## $TotalBsmtSF
## $TotalBsmtSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   290.0   806.0   990.5  1048.2  1264.0  1869.0 
## 
## $TotalBsmtSF$Variance
## [1] 106622.3
## 
## $TotalBsmtSF$Standard_Deviation
## [1] 326.53
## 
## $TotalBsmtSF$Moda
## $TotalBsmtSF$Moda$Mode
## [1] 864
## 
## $TotalBsmtSF$Moda$Frequency
## [1] 35
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1370 obs.);  Bandwidth 'bw' = 69.31
## 
##        x                 y            
##  Min.   :  82.06   Min.   :6.440e-08  
##  1st Qu.: 580.78   1st Qu.:8.634e-05  
##  Median :1079.50   Median :4.377e-04  
##  Mean   :1079.50   Mean   :5.008e-04  
##  3rd Qu.:1578.22   3rd Qu.:8.098e-04  
##  Max.   :2076.94   Max.   :1.364e-03

Possiamo notare che la maggior parte degli edifici ha un semiterrato di area compresa tra 804.0 e 1266.8 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma.

X1stFlrSF

visualization_continuos(na.omit(HP[,"X1stFlrSF"]), sum_info_h[10],"X1stFlrSF")
## [[1]]
## [[1]]$X1stFlrSF
## [[1]]$X1stFlrSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     334     882    1087    1163    1391    4692 
## 
## [[1]]$X1stFlrSF$Variance
## [1] 149450.1
## 
## [[1]]$X1stFlrSF$Standard_Deviation
## [1] 386.59
## 
## [[1]]$X1stFlrSF$Moda
## [[1]]$X1stFlrSF$Moda$Mode
## [1] 864
## 
## [[1]]$X1stFlrSF$Moda$Frequency
## [1] 25
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 79.65
## 
##        x                 y            
##  Min.   :  95.04   Min.   :0.000e+00  
##  1st Qu.:1304.02   1st Qu.:2.549e-07  
##  Median :2513.00   Median :5.676e-06  
##  Mean   :2513.00   Mean   :2.066e-04  
##  3rd Qu.:3721.98   3rd Qu.:2.578e-04  
##  Max.   :4930.96   Max.   :1.237e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte degli edifici ha il primo piano di area compresa tra 882 e 1391 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di outlier

rm_outlier_data = rm_oultiers(HP[,"X1stFlrSF"],.95)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"X1stFlrSF"),"X1stFlrSF")
## $X1stFlrSF
## $X1stFlrSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     438     874    1072    1122    1344    1905 
## 
## $X1stFlrSF$Variance
## [1] 101485.5
## 
## $X1stFlrSF$Standard_Deviation
## [1] 318.57
## 
## $X1stFlrSF$Moda
## $X1stFlrSF$Moda$Mode
## [1] 864
## 
## $X1stFlrSF$Moda$Frequency
## [1] 25
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1403 obs.);  Bandwidth 'bw' = 67.3
## 
##        x                y            
##  Min.   : 236.1   Min.   :9.690e-08  
##  1st Qu.: 703.8   1st Qu.:1.096e-04  
##  Median :1171.5   Median :5.082e-04  
##  Mean   :1171.5   Mean   :5.340e-04  
##  3rd Qu.:1639.2   3rd Qu.:8.647e-04  
##  Max.   :2106.9   Max.   :1.313e-03

Possiamo notare che la maggior parte degli edifici ha il primo piano di area compresa tra 874 e 1344 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma.

X2ndFlrSF

visualization_continuos(na.omit(HP[,"X2ndFlrSF"]), sum_info_h[11],"X2ndFlrSF")
## [[1]]
## [[1]]$X2ndFlrSF
## [[1]]$X2ndFlrSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       0       0       0     347     728    2065 
## 
## [[1]]$X2ndFlrSF$Variance
## [1] 190557.1
## 
## [[1]]$X2ndFlrSF$Standard_Deviation
## [1] 436.53
## 
## [[1]]$X2ndFlrSF$Moda
## [[1]]$X2ndFlrSF$Moda$Mode
## [1] 0
## 
## [[1]]$X2ndFlrSF$Moda$Frequency
## [1] 829
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 91.49
## 
##        x                y            
##  Min.   :-274.5   Min.   :3.360e-08  
##  1st Qu.: 379.0   1st Qu.:1.064e-05  
##  Median :1032.5   Median :1.700e-04  
##  Mean   :1032.5   Mean   :3.819e-04  
##  3rd Qu.:1686.0   3rd Qu.:5.216e-04  
##  Max.   :2339.5   Max.   :2.478e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica. Si puo osservare che l’area del secondo piano è prelevantemete 0 qundi non costruitto. Per fare un analisi sugli edifici che hanno il secondo piano, serve ignorare quelli senza

Rimozione degli zero

rm_0_data = rm_0(na.omit(HP[,"X2ndFlrSF"]))
visualization_continuos(rm_0_data, univariate_analysis(rm_0_data,"X2ndFlrSF"),"X2ndFlrSF")
## $X2ndFlrSF
## $X2ndFlrSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   110.0   625.0   776.0   802.9   926.5  2065.0 
## 
## $X2ndFlrSF$Variance
## [1] 74718.56
## 
## $X2ndFlrSF$Standard_Deviation
## [1] 273.35
## 
## $X2ndFlrSF$Moda
## $X2ndFlrSF$Moda$Mode
## [1] 728
## 
## $X2ndFlrSF$Moda$Frequency
## [1] 10
## 
## Call:
##  density.default(x = data)
## 
## Data: data (631 obs.);   Bandwidth 'bw' = 55.77
## 
##        x                 y            
##  Min.   : -57.32   Min.   :1.284e-07  
##  1st Qu.: 515.09   1st Qu.:1.705e-05  
##  Median :1087.50   Median :1.611e-04  
##  Mean   :1087.50   Mean   :4.363e-04  
##  3rd Qu.:1659.91   3rd Qu.:6.302e-04  
##  Max.   :2232.32   Max.   :1.738e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte degli edifici ha il secondo piano di area compresa tra 625.0 e 926.5 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di outlier

rm_outlier_data = rm_oultiers(rm_0_data,.90)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"X2ndFlrSF"),"X2ndFlrSF")
## $X2ndFlrSF
## $X2ndFlrSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     358     634     762     776     895    1243 
## 
## $X2ndFlrSF$Variance
## [1] 39522.8
## 
## $X2ndFlrSF$Standard_Deviation
## [1] 198.8
## 
## $X2ndFlrSF$Moda
## $X2ndFlrSF$Moda$Mode
## [1] 728
## 
## $X2ndFlrSF$Moda$Frequency
## [1] 10
## 
## Call:
##  density.default(x = data)
## 
## Data: data (565 obs.);   Bandwidth 'bw' = 49.36
## 
##        x                y            
##  Min.   : 209.9   Min.   :5.443e-07  
##  1st Qu.: 505.2   1st Qu.:2.248e-04  
##  Median : 800.5   Median :6.737e-04  
##  Mean   : 800.5   Mean   :8.458e-04  
##  3rd Qu.:1095.8   3rd Qu.:1.437e-03  
##  Max.   :1391.1   Max.   :1.975e-03

Possiamo notare che la maggior parte degli edifici ha il secondo piano di area compresa tra 634 e 895 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma.

LowQualFinSF

visualization_continuos(na.omit(HP[,"LowQualFinSF"]), sum_info_h[12],"LowQualFinSF")
## [[1]]
## [[1]]$LowQualFinSF
## [[1]]$LowQualFinSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   0.000   5.845   0.000 572.000 
## 
## [[1]]$LowQualFinSF$Variance
## [1] 2364.2
## 
## [[1]]$LowQualFinSF$Standard_Deviation
## [1] 48.62
## 
## [[1]]$LowQualFinSF$Moda
## [[1]]$LowQualFinSF$Moda$Mode
## [1] 0
## 
## [[1]]$LowQualFinSF$Moda$Frequency
## [1] 1434
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 10.19
## 
##        x                y            
##  Min.   :-30.57   Min.   :0.000e+00  
##  1st Qu.:127.71   1st Qu.:9.700e-06  
##  Median :286.00   Median :2.900e-05  
##  Mean   :286.00   Mean   :1.576e-03  
##  3rd Qu.:444.29   3rd Qu.:6.513e-05  
##  Max.   :602.57   Max.   :3.834e-02

Possiamo dedurre che la distribuzione è positivamente asimetrica. Si puo osservare che l’area dei piani fatti male è prelevantemete 0 Per fare un analisi sugli edifici che hanno i piani fatti male, serve ignorare quelli senza

Rimozione degli zero

rm_0_data = rm_0(na.omit(HP[,"LowQualFinSF"]))
print(paste("Ratio: ",length(rm_0_data)/length(na.omit(HP[,"LowQualFinSF"]))))
## [1] "Ratio:  0.0178082191780822"
visualization_continuos(rm_0_data, univariate_analysis(rm_0_data,"LowQualFinSF"),"LowQualFinSF")
## $LowQualFinSF
## $LowQualFinSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    53.0   168.2   377.5   328.2   477.5   572.0 
## 
## $LowQualFinSF$Variance
## [1] 27951.2
## 
## $LowQualFinSF$Standard_Deviation
## [1] 167.19
## 
## $LowQualFinSF$Moda
## $LowQualFinSF$Moda$Mode
## [1] 80
## 
## $LowQualFinSF$Moda$Frequency
## [1] 3
## 
## Call:
##  density.default(x = data)
## 
## Data: data (26 obs.);    Bandwidth 'bw' = 78.42
## 
##        x                 y            
##  Min.   :-182.27   Min.   :3.188e-06  
##  1st Qu.:  65.11   1st Qu.:1.957e-04  
##  Median : 312.50   Median :1.231e-03  
##  Mean   : 312.50   Mean   :1.009e-03  
##  3rd Qu.: 559.89   3rd Qu.:1.471e-03  
##  Max.   : 807.27   Max.   :2.264e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte degli edifici ha i piani fatti male di area compresa tra 168.2 e 477.5 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Gli edifici che hanno i piani fatti male sono cosi piccoli (rispetto al totale ~=1,8%) che si puo trascurare

GrLivArea

visualization_continuos(na.omit(HP[,"GrLivArea"]), sum_info_h[13],"GrLivArea")
## [[1]]
## [[1]]$GrLivArea
## [[1]]$GrLivArea$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     334    1130    1464    1515    1777    5642 
## 
## [[1]]$GrLivArea$Variance
## [1] 276129.6
## 
## [[1]]$GrLivArea$Standard_Deviation
## [1] 525.48
## 
## [[1]]$GrLivArea$Moda
## [[1]]$GrLivArea$Moda$Mode
## [1] 864
## 
## [[1]]$GrLivArea$Moda$Frequency
## [1] 22
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 101.2
## 
##        x                 y            
##  Min.   :  30.29   Min.   :1.000e-10  
##  1st Qu.:1509.14   1st Qu.:1.295e-06  
##  Median :2988.00   Median :1.176e-05  
##  Mean   :2988.00   Mean   :1.689e-04  
##  3rd Qu.:4466.85   3rd Qu.:2.169e-04  
##  Max.   :5945.71   Max.   :8.045e-04

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte degli edifici che sono sopra il seminterrato sono di area compresa tra 1130 e 1777 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di outlier

rm_outlier_data = rm_oultiers(na.omit(HP[,"GrLivArea"]),.95)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"GrLivArea"),"GrLivArea")
## $GrLivArea
## $GrLivArea$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     520    1121    1440    1456    1728    2531 
## 
## $GrLivArea$Variance
## [1] 176895.8
## 
## $GrLivArea$Standard_Deviation
## [1] 420.59
## 
## $GrLivArea$Moda
## $GrLivArea$Moda$Mode
## [1] 864
## 
## $GrLivArea$Moda$Frequency
## [1] 22
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1398 obs.);  Bandwidth 'bw' = 88.92
## 
##        x                y            
##  Min.   : 253.2   Min.   :4.100e-08  
##  1st Qu.: 889.4   1st Qu.:7.707e-05  
##  Median :1525.5   Median :3.389e-04  
##  Mean   :1525.5   Mean   :3.926e-04  
##  3rd Qu.:2161.6   3rd Qu.:7.425e-04  
##  Max.   :2797.8   Max.   :8.456e-04

Possiamo notare che la maggior parte degli edifici che sono sopra il seminterrato sono compresi tra 1121 e 1728 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma.

GarageYrBlt

visualization_continuos(na.omit(HP[,"GarageYrBlt"]), sum_info_h[22],"GarageYrBlt")
## [[1]]
## [[1]]$GarageYrBlt
## [[1]]$GarageYrBlt$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1900    1961    1980    1979    2002    2010 
## 
## [[1]]$GarageYrBlt$Variance
## [1] 609.58
## 
## [[1]]$GarageYrBlt$Standard_Deviation
## [1] 24.69
## 
## [[1]]$GarageYrBlt$Moda
## [[1]]$GarageYrBlt$Moda$Mode
## [1] 2005
## 
## [[1]]$GarageYrBlt$Moda$Frequency
## [1] 65
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1379 obs.);  Bandwidth 'bw' = 5.234
## 
##        x              y            
##  Min.   :1884   Min.   :6.370e-07  
##  1st Qu.:1920   1st Qu.:1.156e-03  
##  Median :1955   Median :4.492e-03  
##  Mean   :1955   Mean   :7.065e-03  
##  3rd Qu.:1990   3rd Qu.:1.213e-02  
##  Max.   :2026   Max.   :2.341e-02

Possiamo dedurre che la distribuzione è positivamente asimetrica e quindi il numero di garage costruiti crescono ogni anno La maggior parte degli garage erano costruiti fra 1961 e 2002, essendo rispettivamente il 1° e il 3° quantile e l’anno con è il massimo costruitto è nel 2005 con 65 garage

GarageArea

visualization_continuos(na.omit(HP[,"GarageArea"]), sum_info_h[24],"GarageArea")
## [[1]]
## [[1]]$GarageArea
## [[1]]$GarageArea$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     0.0   334.5   480.0   473.0   576.0  1418.0 
## 
## [[1]]$GarageArea$Variance
## [1] 45712.51
## 
## [[1]]$GarageArea$Standard_Deviation
## [1] 213.8
## 
## [[1]]$GarageArea$Moda
## [[1]]$GarageArea$Moda$Mode
## [1] 0
## 
## [[1]]$GarageArea$Moda$Frequency
## [1] 81
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 37.77
## 
##        x                y            
##  Min.   :-113.3   Min.   :8.960e-08  
##  1st Qu.: 297.8   1st Qu.:1.752e-05  
##  Median : 709.0   Median :3.136e-04  
##  Mean   : 709.0   Mean   :6.074e-04  
##  3rd Qu.:1120.2   3rd Qu.:1.028e-03  
##  Max.   :1531.3   Max.   :2.465e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte degli garage sono di area compresa tra 334.5 e 576.0 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di outlier

rm_outlier_data = rm_oultiers(na.omit(HP[,"GarageArea"]),.90)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"GarageArea"),"GarageArea")
## $GarageArea
## $GarageArea$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   160.0   358.0   476.0   467.7   566.0   824.0 
## 
## $GarageArea$Variance
## [1] 21343.39
## 
## $GarageArea$Standard_Deviation
## [1] 146.09
## 
## $GarageArea$Moda
## $GarageArea$Moda$Mode
## [1] 440
## 
## $GarageArea$Moda$Frequency
## [1] 49
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1277 obs.);  Bandwidth 'bw' = 31.45
## 
##        x                y            
##  Min.   : 65.65   Min.   :4.482e-07  
##  1st Qu.:278.82   1st Qu.:3.274e-04  
##  Median :492.00   Median :1.095e-03  
##  Mean   :492.00   Mean   :1.172e-03  
##  3rd Qu.:705.18   3rd Qu.:1.846e-03  
##  Max.   :918.35   Max.   :2.875e-03

Possiamo notare che la maggior parte degli garage sono compresi tra 358.0 e 566.0 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma.

WoodDeckSF

visualization_continuos(na.omit(HP[,"WoodDeckSF"]), sum_info_h[25],"WoodDeckSF")
## [[1]]
## [[1]]$WoodDeckSF
## [[1]]$WoodDeckSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    0.00    0.00   94.24  168.00  857.00 
## 
## [[1]]$WoodDeckSF$Variance
## [1] 15709.81
## 
## [[1]]$WoodDeckSF$Standard_Deviation
## [1] 125.34
## 
## [[1]]$WoodDeckSF$Moda
## [[1]]$WoodDeckSF$Moda$Mode
## [1] 0
## 
## [[1]]$WoodDeckSF$Moda$Frequency
## [1] 761
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 26.27
## 
##        x                y            
##  Min.   :-78.81   Min.   :1.180e-07  
##  1st Qu.:174.85   1st Qu.:2.217e-05  
##  Median :428.50   Median :1.736e-04  
##  Mean   :428.50   Mean   :9.840e-04  
##  3rd Qu.:682.15   3rd Qu.:1.377e-03  
##  Max.   :935.81   Max.   :8.060e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica. Si puo osservare che l’area del ponte di legno è prelevantemete 0 con 761 occorrenze qundi non costruitto. Per fare un analisi sui ponti di legno costruiti, serve ignorare quelli non

Rimozione degli zero

rm_0_data = rm_0(na.omit(HP[,"WoodDeckSF"]))
visualization_continuos(rm_0_data, univariate_analysis(rm_0_data,"WoodDeckSF"),"WoodDeckSF")
## $WoodDeckSF
## $WoodDeckSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    12.0   120.0   171.0   196.8   240.0   857.0 
## 
## $WoodDeckSF$Variance
## [1] 12611.23
## 
## $WoodDeckSF$Standard_Deviation
## [1] 112.3
## 
## $WoodDeckSF$Moda
## $WoodDeckSF$Moda$Mode
## [1] 192
## 
## $WoodDeckSF$Moda$Frequency
## [1] 38
## 
## Call:
##  density.default(x = data)
## 
## Data: data (699 obs.);   Bandwidth 'bw' = 21.75
## 
##        x                y            
##  Min.   :-53.24   Min.   :3.000e-07  
##  1st Qu.:190.63   1st Qu.:4.159e-05  
##  Median :434.50   Median :2.577e-04  
##  Mean   :434.50   Mean   :1.024e-03  
##  3rd Qu.:678.37   3rd Qu.:1.424e-03  
##  Max.   :922.24   Max.   :4.913e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte dei ponte di legno sono di area compresa tra 120.0 e 240.0 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di outlier

rm_outlier_data = rm_oultiers(rm_0_data,.90)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"WoodDeckSF"),"WoodDeckSF")
## $WoodDeckSF
## $WoodDeckSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    24.0   120.0   168.0   176.3   222.0   380.0 
## 
## $WoodDeckSF$Variance
## [1] 6040.51
## 
## $WoodDeckSF$Standard_Deviation
## [1] 77.72
## 
## $WoodDeckSF$Moda
## $WoodDeckSF$Moda$Mode
## [1] 192
## 
## $WoodDeckSF$Moda$Frequency
## [1] 38
## 
## Call:
##  density.default(x = data)
## 
## Data: data (650 obs.);   Bandwidth 'bw' = 18.76
## 
##        x                y            
##  Min.   :-32.27   Min.   :1.060e-06  
##  1st Qu.: 84.86   1st Qu.:6.233e-04  
##  Median :202.00   Median :1.584e-03  
##  Mean   :202.00   Mean   :2.132e-03  
##  3rd Qu.:319.13   3rd Qu.:3.725e-03  
##  Max.   :436.27   Max.   :5.362e-03

Possiamo notare che la maggior parte dei ponte di legno sono di area compresa tra 120.0 e 220.5 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma.

OpenPorchSF

visualization_continuos(na.omit(HP[,"OpenPorchSF"]), sum_info_h[26],"OpenPorchSF")
## [[1]]
## [[1]]$OpenPorchSF
## [[1]]$OpenPorchSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    0.00   25.00   46.66   68.00  547.00 
## 
## [[1]]$OpenPorchSF$Variance
## [1] 4389.86
## 
## [[1]]$OpenPorchSF$Standard_Deviation
## [1] 66.26
## 
## [[1]]$OpenPorchSF$Moda
## [[1]]$OpenPorchSF$Moda$Mode
## [1] 0
## 
## [[1]]$OpenPorchSF$Moda$Frequency
## [1] 656
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 10.64
## 
##        x                y            
##  Min.   :-31.91   Min.   :2.300e-08  
##  1st Qu.:120.80   1st Qu.:2.790e-05  
##  Median :273.50   Median :1.925e-04  
##  Mean   :273.50   Mean   :1.635e-03  
##  3rd Qu.:426.20   3rd Qu.:1.603e-03  
##  Max.   :578.91   Max.   :1.730e-02

Possiamo dedurre che la distribuzione è positivamente asimetrica. Si puo osservare che l’area del portico aperto è prelevantemete 0 con 656 occorrenze qundi non costruitto. Per fare un analisi sui portico aperti, serve ignorare quelli non

Rimozione degli zero

rm_0_data = rm_0(na.omit(HP[,"OpenPorchSF"]))
visualization_continuos(rm_0_data, univariate_analysis(rm_0_data,"OpenPorchSF"),"OpenPorchSF")
## $OpenPorchSF
## $OpenPorchSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    4.00   39.00   63.00   84.73  112.00  547.00 
## 
## $OpenPorchSF$Variance
## [1] 4746.27
## 
## $OpenPorchSF$Standard_Deviation
## [1] 68.89
## 
## $OpenPorchSF$Moda
## $OpenPorchSF$Moda$Mode
## [1] 36
## 
## $OpenPorchSF$Moda$Frequency
## [1] 29
## 
## Call:
##  density.default(x = data)
## 
## Data: data (804 obs.);   Bandwidth 'bw' = 12.86
## 
##        x                y            
##  Min.   :-34.59   Min.   :3.960e-07  
##  1st Qu.:120.45   1st Qu.:4.309e-05  
##  Median :275.50   Median :2.546e-04  
##  Mean   :275.50   Mean   :1.611e-03  
##  3rd Qu.:430.55   3rd Qu.:1.808e-03  
##  Max.   :585.60   Max.   :1.078e-02

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte dei portico aperti sono di area compresa tra 39.00 e 112.00 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di outlier

rm_outlier_data = rm_oultiers(rm_0_data,.90)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"OpenPorchSF"),"OpenPorchSF")
## $OpenPorchSF
## $OpenPorchSF$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    4.00   36.00   59.00   70.86   98.25  198.00 
## 
## $OpenPorchSF$Variance
## [1] 1891.16
## 
## $OpenPorchSF$Standard_Deviation
## [1] 43.49
## 
## $OpenPorchSF$Moda
## $OpenPorchSF$Moda$Mode
## [1] 36
## 
## $OpenPorchSF$Moda$Frequency
## [1] 29
## 
## Call:
##  density.default(x = data)
## 
## Data: data (748 obs.);   Bandwidth 'bw' = 10.42
## 
##        x                y            
##  Min.   :-27.26   Min.   :1.210e-06  
##  1st Qu.: 36.87   1st Qu.:7.911e-04  
##  Median :101.00   Median :2.782e-03  
##  Mean   :101.00   Mean   :3.895e-03  
##  3rd Qu.:165.13   3rd Qu.:5.686e-03  
##  Max.   :229.26   Max.   :1.222e-02

Possiamo notare che la maggior parte dei portico aperti sono di area compresa tra 120.0 e 220.5 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma.

EnclosedPorch

visualization_continuos(na.omit(HP[,"EnclosedPorch"]), sum_info_h[27],"EnclosedPorch")
## [[1]]
## [[1]]$EnclosedPorch
## [[1]]$EnclosedPorch$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    0.00    0.00   21.95    0.00  552.00 
## 
## [[1]]$EnclosedPorch$Variance
## [1] 3735.55
## 
## [[1]]$EnclosedPorch$Standard_Deviation
## [1] 61.12
## 
## [[1]]$EnclosedPorch$Moda
## [[1]]$EnclosedPorch$Moda$Mode
## [1] 0
## 
## [[1]]$EnclosedPorch$Moda$Frequency
## [1] 1252
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 12.81
## 
##        x                y            
##  Min.   :-38.43   Min.   :0.000e+00  
##  1st Qu.:118.78   1st Qu.:6.346e-06  
##  Median :276.00   Median :1.886e-04  
##  Mean   :276.00   Mean   :1.587e-03  
##  3rd Qu.:433.21   3rd Qu.:6.071e-04  
##  Max.   :590.43   Max.   :2.664e-02

Possiamo dedurre che la distribuzione è positivamente asimetrica. Si puo osservare che l’area del portico chiuso è prelevantemete 0 con 1252 occorrenze qundi non costruitto. Per fare un analisi sui portico chiusi, serve ignorare quelli non

Rimozione degli zero

rm_0_data = rm_0(na.omit(HP[,"EnclosedPorch"]))
visualization_continuos(rm_0_data, univariate_analysis(rm_0_data,"EnclosedPorch"),"EnclosedPorch")
## $EnclosedPorch
## $EnclosedPorch$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    19.0   104.2   144.5   154.1   205.0   552.0 
## 
## $EnclosedPorch$Variance
## [1] 5866.98
## 
## $EnclosedPorch$Standard_Deviation
## [1] 76.6
## 
## $EnclosedPorch$Moda
## $EnclosedPorch$Moda$Mode
## [1] 112
## 
## $EnclosedPorch$Moda$Frequency
## [1] 15
## 
## Call:
##  density.default(x = data)
## 
## Data: data (208 obs.);   Bandwidth 'bw' = 23.27
## 
##        x                y            
##  Min.   :-50.81   Min.   :2.910e-07  
##  1st Qu.:117.35   1st Qu.:3.794e-05  
##  Median :285.50   Median :3.211e-04  
##  Mean   :285.50   Mean   :1.485e-03  
##  3rd Qu.:453.65   3rd Qu.:2.944e-03  
##  Max.   :621.81   Max.   :5.414e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte dei portico chiusi sono di area compresa tra 104.2 e 205.0 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di outlier

rm_outlier_data = rm_oultiers(rm_0_data,.95)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"EnclosedPorch"),"EnclosedPorch")
## $EnclosedPorch
## $EnclosedPorch$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    19.0   102.0   144.0   149.3   200.5   301.0 
## 
## $EnclosedPorch$Variance
## [1] 4630.31
## 
## $EnclosedPorch$Standard_Deviation
## [1] 68.05
## 
## $EnclosedPorch$Moda
## $EnclosedPorch$Moda$Mode
## [1] 112
## 
## $EnclosedPorch$Moda$Frequency
## [1] 15
## 
## Call:
##  density.default(x = data)
## 
## Data: data (204 obs.);   Bandwidth 'bw' = 21.14
## 
##        x                y            
##  Min.   :-44.42   Min.   :2.099e-06  
##  1st Qu.: 57.79   1st Qu.:5.220e-04  
##  Median :160.00   Median :2.447e-03  
##  Mean   :160.00   Mean   :2.443e-03  
##  3rd Qu.:262.21   3rd Qu.:4.105e-03  
##  Max.   :364.42   Max.   :5.684e-03

Possiamo notare che la maggior parte dei portico chiusi sono di area compresa tra 102.0 e 200.5 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma.

X3SsnPorch

visualization_continuos(na.omit(HP[,"X3SsnPorch"]), sum_info_h[28],"X3SsnPorch")
## [[1]]
## [[1]]$X3SsnPorch
## [[1]]$X3SsnPorch$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    0.00    0.00    3.41    0.00  508.00 
## 
## [[1]]$X3SsnPorch$Variance
## [1] 859.51
## 
## [[1]]$X3SsnPorch$Standard_Deviation
## [1] 29.32
## 
## [[1]]$X3SsnPorch$Moda
## [[1]]$X3SsnPorch$Moda$Mode
## [1] 0
## 
## [[1]]$X3SsnPorch$Moda$Frequency
## [1] 1436
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 6.145
## 
##        x                y            
##  Min.   :-18.43   Min.   :0.000e+00  
##  1st Qu.:117.78   1st Qu.:1.300e-07  
##  Median :254.00   Median :2.019e-05  
##  Mean   :254.00   Mean   :1.832e-03  
##  3rd Qu.:390.22   3rd Qu.:5.386e-05  
##  Max.   :526.43   Max.   :6.356e-02

Possiamo dedurre che la distribuzione è positivamente asimetrica. Si puo osservare che l’area del Portico per tre stagioni è prelevantemete 0 con 1252 occorrenze qundi non costruitto. Per fare un analisi sui Portico per tre stagioni, serve ignorare quelli non

Rimozione degli zero

rm_0_data = rm_0(na.omit(HP[,"X3SsnPorch"]))
print(paste("Ratio: ",length(rm_0_data)/length(na.omit(HP[,"X3SsnPorch"]))))
## [1] "Ratio:  0.0164383561643836"
visualization_continuos(rm_0_data, univariate_analysis(rm_0_data,"X3SsnPorch"),"X3SsnPorch")
## $X3SsnPorch
## $X3SsnPorch$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    23.0   150.8   180.0   207.4   239.8   508.0 
## 
## $X3SsnPorch$Variance
## [1] 10368.34
## 
## $X3SsnPorch$Standard_Deviation
## [1] 101.83
## 
## $X3SsnPorch$Moda
## $X3SsnPorch$Moda$Mode
## [1] 168
## 
## $X3SsnPorch$Moda$Frequency
## [1] 3
## 
## Call:
##  density.default(x = data)
## 
## Data: data (24 obs.);    Bandwidth 'bw' = 31.66
## 
##        x                y            
##  Min.   :-71.97   Min.   :0.0000059  
##  1st Qu.: 96.76   1st Qu.:0.0003565  
##  Median :265.50   Median :0.0005635  
##  Mean   :265.50   Mean   :0.0014800  
##  3rd Qu.:434.24   3rd Qu.:0.0019201  
##  Max.   :602.97   Max.   :0.0062139

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte dei Portico per tre stagioni sono di area compresa tra 150.8 e 239.8 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Gli Portico per tre stagioni costruiti sono cosi piccoli (rispetto al totale ~=1,6%) che si puo trascurare

ScreenPorch

visualization_continuos(na.omit(HP[,"ScreenPorch"]), sum_info_h[29],"ScreenPorch")
## [[1]]
## [[1]]$ScreenPorch
## [[1]]$ScreenPorch$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    0.00    0.00   15.06    0.00  480.00 
## 
## [[1]]$ScreenPorch$Variance
## [1] 3108.89
## 
## [[1]]$ScreenPorch$Standard_Deviation
## [1] 55.76
## 
## [[1]]$ScreenPorch$Moda
## [[1]]$ScreenPorch$Moda$Mode
## [1] 0
## 
## [[1]]$ScreenPorch$Moda$Frequency
## [1] 1344
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 11.69
## 
##        x                y            
##  Min.   :-35.06   Min.   :2.640e-07  
##  1st Qu.:102.47   1st Qu.:2.890e-05  
##  Median :240.00   Median :1.415e-04  
##  Mean   :240.00   Mean   :1.814e-03  
##  3rd Qu.:377.53   3rd Qu.:4.037e-04  
##  Max.   :515.06   Max.   :3.135e-02

Possiamo dedurre che la distribuzione è positivamente asimetrica. Si puo osservare che l’area del Portico dello schermo è prelevantemete 0 con 1344 occorrenze qundi non costruitto. Per fare un analisi sui Portico dello schermo, serve ignorare quelli non

Rimozione degli zero

rm_0_data = rm_0(na.omit(HP[,"ScreenPorch"]))
visualization_continuos(rm_0_data, univariate_analysis(rm_0_data,"ScreenPorch"),"ScreenPorch")
## $ScreenPorch
## $ScreenPorch$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    40.0   143.8   180.0   189.6   224.0   480.0 
## 
## $ScreenPorch$Variance
## [1] 6076.54
## 
## $ScreenPorch$Standard_Deviation
## [1] 77.95
## 
## $ScreenPorch$Moda
## $ScreenPorch$Moda$Mode
## [1] 192
## 
## $ScreenPorch$Moda$Frequency
## [1] 6
## 
## Call:
##  density.default(x = data)
## 
## Data: data (116 obs.);   Bandwidth 'bw' = 20.83
## 
##        x                y            
##  Min.   :-22.49   Min.   :1.862e-06  
##  1st Qu.:118.75   1st Qu.:2.460e-04  
##  Median :260.00   Median :5.576e-04  
##  Mean   :260.00   Mean   :1.768e-03  
##  3rd Qu.:401.25   3rd Qu.:2.672e-03  
##  Max.   :542.49   Max.   :6.750e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte dei Portico dello schermo stagioni sono di area compresa tra 143.8 e 224.0 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di outlier

rm_outlier_data = rm_oultiers(rm_0_data,.95)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"ScreenPorch"),"ScreenPorch")
## $ScreenPorch
## $ScreenPorch$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    40.0   142.2   177.0   177.3   214.5   322.0 
## 
## $ScreenPorch$Variance
## [1] 3410.93
## 
## $ScreenPorch$Standard_Deviation
## [1] 58.4
## 
## $ScreenPorch$Moda
## $ScreenPorch$Moda$Mode
## [1] 192
## 
## $ScreenPorch$Moda$Frequency
## [1] 6
## 
## Call:
##  density.default(x = data)
## 
## Data: data (110 obs.);   Bandwidth 'bw' = 18.95
## 
##        x                y            
##  Min.   :-16.86   Min.   :2.451e-06  
##  1st Qu.: 82.07   1st Qu.:4.027e-04  
##  Median :181.00   Median :1.985e-03  
##  Mean   :181.00   Mean   :2.524e-03  
##  3rd Qu.:279.93   3rd Qu.:4.225e-03  
##  Max.   :378.86   Max.   :7.267e-03

Possiamo notare che la maggior parte dei Portico dello schermo sono di area compresa tra 142.2 e 214.5 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma.

PoolArea

visualization_continuos(na.omit(HP[,"PoolArea"]), sum_info_h[30],"PoolArea")
## [[1]]
## [[1]]$PoolArea
## [[1]]$PoolArea$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   0.000   2.759   0.000 738.000 
## 
## [[1]]$PoolArea$Variance
## [1] 1614.22
## 
## [[1]]$PoolArea$Standard_Deviation
## [1] 40.18
## 
## [[1]]$PoolArea$Moda
## [[1]]$PoolArea$Moda$Mode
## [1] 0
## 
## [[1]]$PoolArea$Moda$Frequency
## [1] 1453
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 8.421
## 
##        x                y            
##  Min.   :-25.26   Min.   :0.0000000  
##  1st Qu.:171.87   1st Qu.:0.0000000  
##  Median :369.00   Median :0.0000000  
##  Mean   :369.00   Mean   :0.0012658  
##  3rd Qu.:566.13   3rd Qu.:0.0000153  
##  Max.   :763.26   Max.   :0.0467836

Possiamo dedurre che la distribuzione è positivamente asimetrica. Si puo osservare che l’area della piscina è prelevantemete 0 con 1453 occorrenze qundi non costruitto. Per fare un analisi sulle piscine, serve ignorare quelli non

Rimozione degli zero

rm_0_data = rm_0(na.omit(HP[,"PoolArea"]))
print(paste("Ration: ", length(rm_0_data)/length(na.omit(HP[,"PoolArea"]))))
## [1] "Ration:  0.00479452054794521"
visualization_continuos(rm_0_data, univariate_analysis(rm_0_data,"PoolArea"),"PoolArea")
## $PoolArea
## $PoolArea$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   480.0   515.5   555.0   575.4   612.0   738.0 
## 
## $PoolArea$Variance
## [1] 8071.29
## 
## $PoolArea$Standard_Deviation
## [1] 89.84
## 
## $PoolArea$Moda
## $PoolArea$Moda$Mode
## [1] 512 648 576 555 480 519 738
## 
## $PoolArea$Moda$Frequency
## [1] 1
## 
## Call:
##  density.default(x = data)
## 
## Data: data (7 obs.); Bandwidth 'bw' = 43.92
## 
##        x               y            
##  Min.   :348.2   Min.   :1.456e-05  
##  1st Qu.:478.6   1st Qu.:4.850e-04  
##  Median :609.0   Median :1.564e-03  
##  Mean   :609.0   Mean   :1.915e-03  
##  3rd Qu.:739.4   3rd Qu.:3.040e-03  
##  Max.   :869.8   Max.   :5.021e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte delle piscine sono di area compresa tra 515.5 e 612.0 piedi^2, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Gli Portico per tre stagioni costruiti sono cosi piccoli (rispetto al totale <1%) che si puo trascurare

MiscVal

visualization_continuos(na.omit(HP[,"MiscVal"]), sum_info_h[31],"MiscVal")
## [[1]]
## [[1]]$MiscVal
## [[1]]$MiscVal$Summary
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##     0.00     0.00     0.00    43.49     0.00 15500.00 
## 
## [[1]]$MiscVal$Variance
## [1] 246138.1
## 
## [[1]]$MiscVal$Standard_Deviation
## [1] 496.12
## 
## [[1]]$MiscVal$Moda
## [[1]]$MiscVal$Moda$Mode
## [1] 0
## 
## [[1]]$MiscVal$Moda$Frequency
## [1] 1408
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 104
## 
##        x                 y            
##  Min.   : -311.9   Min.   :0.000e+00  
##  1st Qu.: 3719.0   1st Qu.:0.000e+00  
##  Median : 7750.0   Median :0.000e+00  
##  Mean   : 7750.0   Mean   :6.210e-05  
##  3rd Qu.:11781.0   3rd Qu.:5.010e-07  
##  Max.   :15811.9   Max.   :3.682e-03

Possiamo dedurre che la distribuzione è positivamente asimetrica. Si puo osservare che il costo delle funzionalità varie è prelevantemete 0 con 1453 occorrenze qundi non costruitto. Per fare un analisi suli costi delle funzionalità varie, serve ignorare quelli non

Rimozione degli zero

rm_0_data = rm_0(na.omit(HP[,"MiscVal"]))
print(paste("Ratio: ", length(rm_0_data)/length(na.omit(HP[,"MiscVal"]))))
## [1] "Ratio:  0.0356164383561644"
visualization_continuos(rm_0_data, univariate_analysis(rm_0_data,"MiscVal"),"MiscVal")
## $MiscVal
## $MiscVal$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    54.0   437.5   500.0  1221.0   887.5 15500.0 
## 
## $MiscVal$Variance
## [1] 5575453
## 
## $MiscVal$Standard_Deviation
## [1] 2361.24
## 
## $MiscVal$Moda
## $MiscVal$Moda$Mode
## [1] 400
## 
## $MiscVal$Moda$Frequency
## [1] 11
## 
## Call:
##  density.default(x = data)
## 
## Data: data (52 obs.);    Bandwidth 'bw' = 137.1
## 
##        x                 y            
##  Min.   : -357.4   Min.   :0.000e+00  
##  1st Qu.: 3709.8   1st Qu.:0.000e+00  
##  Median : 7777.0   Median :0.000e+00  
##  Mean   : 7777.0   Mean   :6.137e-05  
##  3rd Qu.:11844.2   3rd Qu.:1.989e-05  
##  Max.   :15911.4   Max.   :1.626e-03

print(paste("Not in IQR: ",rm_0_data[rm_0_data<437.5]+rm_0_data[rm_0_data>887.5]))
##  [1] "Not in IQR:  15850" "Not in IQR:  1600"  "Not in IQR:  2400" 
##  [4] "Not in IQR:  2400"  "Not in IQR:  3900"  "Not in IQR:  1700" 
##  [7] "Not in IQR:  1600"  "Not in IQR:  2400"  "Not in IQR:  1454" 
## [10] "Not in IQR:  8700"  "Not in IQR:  1550"  "Not in IQR:  2400" 
## [13] "Not in IQR:  2900"
print(paste("In IQR: ",rm_0_data[rm_0_data>=437.5 & rm_0_data<=887.5]))
##  [1] "In IQR:  700" "In IQR:  700" "In IQR:  500" "In IQR:  700" "In IQR:  480"
##  [6] "In IQR:  450" "In IQR:  450" "In IQR:  500" "In IQR:  450" "In IQR:  700"
## [11] "In IQR:  800" "In IQR:  480" "In IQR:  600" "In IQR:  500" "In IQR:  600"
## [16] "In IQR:  600" "In IQR:  500" "In IQR:  450" "In IQR:  500" "In IQR:  500"
## [21] "In IQR:  500" "In IQR:  620" "In IQR:  560" "In IQR:  500" "In IQR:  700"
## [26] "In IQR:  600"

Possiamo notare che la maggior parte dei costi delle funzionalità varie sono comprese tra 437.5 e 887.5 , essendo rispettivamente il 1° e il 3° quantile. Dato la variabilita dei dati e la mancanza di coerenza, dovuta alla mancanza di dati (~=3.56%) dei dati totali, allora si potrebbe trascurare

SalePrice

visualization_continuos(na.omit(HP[,"SalePrice"]), sum_info_h[34],"SalePrice")
## [[1]]
## [[1]]$SalePrice
## [[1]]$SalePrice$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   34900  129975  163000  180921  214000  755000 
## 
## [[1]]$SalePrice$Variance
## [1] 6311111264
## 
## [[1]]$SalePrice$Standard_Deviation
## [1] 79442.5
## 
## [[1]]$SalePrice$Moda
## [[1]]$SalePrice$Moda$Mode
## [1] 140000
## 
## [[1]]$SalePrice$Moda$Frequency
## [1] 20
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1460 obs.);  Bandwidth 'bw' = 1.314e+04
## 
##        x                y            
##  Min.   : -4527   Min.   :1.000e-12  
##  1st Qu.:195211   1st Qu.:2.700e-08  
##  Median :394950   Median :1.687e-07  
##  Mean   :394950   Mean   :1.250e-06  
##  3rd Qu.:594689   3rd Qu.:1.535e-06  
##  Max.   :794427   Max.   :7.682e-06

Possiamo dedurre che la distribuzione è positivamente asimetrica e che la maggior parte del prezzo di vendita è compresa tra 129975 e 214000, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Rimangono ancora degli outlier

Rimozione di outlier

rm_outlier_data = rm_oultiers(na.omit(HP[,"SalePrice"]),.90)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"SalePrice"),"SalePrice")
## $SalePrice
## $SalePrice$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   52000  128500  157500  166074  197900  311500 
## 
## $SalePrice$Variance
## [1] 2827579437
## 
## $SalePrice$Standard_Deviation
## [1] 53174.99
## 
## $SalePrice$Moda
## $SalePrice$Moda$Mode
## [1] 140000
## 
## $SalePrice$Moda$Frequency
## [1] 20
## 
## Call:
##  density.default(x = data)
## 
## Data: data (1353 obs.);  Bandwidth 'bw' = 1.102e+04
## 
##        x                y            
##  Min.   : 18936   Min.   :1.089e-09  
##  1st Qu.:100343   1st Qu.:6.209e-07  
##  Median :181750   Median :2.388e-06  
##  Mean   :181750   Mean   :3.068e-06  
##  3rd Qu.:263157   3rd Qu.:5.234e-06  
##  Max.   :344564   Max.   :8.585e-06

Possiamo notare che la maggior parte del prezzo di vendita sono compresa tra 128988 e 196500, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma.

Credit Cards - Univariata Quantitativa

Lettura dati

credit_card = read.csv2("./credit_card.csv", sep = ",", stringsAsFactors=T, row.names=1)

Trasformazione in numerica

str(credit_card)
## 'data.frame':    10127 obs. of  22 variables:
##  $ Attrition_Flag                                                                                                                    : Factor w/ 2 levels "Attrited Customer",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ Customer_Age                                                                                                                      : int  45 49 51 40 40 44 51 32 37 48 ...
##  $ Gender                                                                                                                            : Factor w/ 2 levels "F","M": 2 1 2 1 2 2 2 2 2 2 ...
##  $ Dependent_count                                                                                                                   : int  3 5 3 4 3 2 4 0 3 2 ...
##  $ Education_Level                                                                                                                   : Factor w/ 7 levels "College","Doctorate",..: 4 3 3 4 6 3 7 4 6 3 ...
##  $ Marital_Status                                                                                                                    : Factor w/ 4 levels "Divorced","Married",..: 2 3 2 4 2 2 2 4 3 3 ...
##  $ Income_Category                                                                                                                   : Factor w/ 6 levels "$120K +","$40K - $60K",..: 3 5 4 5 3 2 1 3 3 4 ...
##  $ Card_Category                                                                                                                     : Factor w/ 4 levels "Blue","Gold",..: 1 1 1 1 1 1 2 4 1 1 ...
##  $ Months_on_book                                                                                                                    : int  39 44 36 34 21 36 46 27 36 36 ...
##  $ Total_Relationship_Count                                                                                                          : int  5 6 4 3 5 3 6 2 5 6 ...
##  $ Months_Inactive_12_mon                                                                                                            : int  1 1 1 4 1 1 1 2 2 3 ...
##  $ Contacts_Count_12_mon                                                                                                             : int  3 2 0 1 0 2 3 2 0 3 ...
##  $ Credit_Limit                                                                                                                      : Factor w/ 6205 levels "10001","10007",..: 519 5724 3719 3613 4464 4081 3748 3136 2207 333 ...
##  $ Total_Revolving_Bal                                                                                                               : int  777 864 0 2517 0 1247 2264 1396 2517 1677 ...
##  $ Avg_Open_To_Buy                                                                                                                   : Factor w/ 6813 levels "10","100","1000",..: 525 5881 3964 6124 4699 3018 3501 3023 2055 6808 ...
##  $ Total_Amt_Chng_Q4_Q1                                                                                                              : Factor w/ 1158 levels "0","0.01","0.018",..: 988 1074 1155 1021 1146 1010 1137 1148 1157 1070 ...
##  $ Total_Trans_Amt                                                                                                                   : int  1144 1291 1887 1171 816 1088 1330 1538 1350 1441 ...
##  $ Total_Trans_Ct                                                                                                                    : int  42 33 20 20 28 24 31 36 24 32 ...
##  $ Total_Ct_Chng_Q4_Q1                                                                                                               : Factor w/ 830 levels "0","0.028","0.029",..: 792 830 819 819 822 508 400 393 711 539 ...
##  $ Avg_Utilization_Ratio                                                                                                             : Factor w/ 964 levels "0","0.004","0.005",..: 59 103 1 758 1 309 64 46 111 142 ...
##  $ Naive_Bayes_Classifier_Attrition_Flag_Card_Category_Contacts_Count_12_mon_Dependent_count_Education_Level_Months_Inactive_12_mon_1: Factor w/ 1704 levels "0.00010018","0.00010043",..: 1667 1466 1303 149 1305 1453 113 1636 1403 547 ...
##  $ Naive_Bayes_Classifier_Attrition_Flag_Card_Category_Contacts_Count_12_mon_Dependent_count_Education_Level_Months_Inactive_12_mon_2: Factor w/ 640 levels "0.00041998","0.00042446",..: 632 635 639 628 639 635 629 632 637 611 ...

Come si vede, alcuni dei variabili quantitativi sono fattori

is_numeric_factor <- function(factor_column) {
  all(!is.na(suppressWarnings(as.numeric(as.character(factor_column)))))
}

# Fuzione che converte fact a num
convert_factors_to_numeric <- function(data) {
  for (col in names(data)) {
    if (is.factor(data[[col]])) {
      if (is_numeric_factor(data[[col]])) {
        data[[col]] = as.numeric(as.character(data[[col]]))
      }
    }
  }
  return(data)
}

credit_w_numeric = convert_factors_to_numeric(credit_card)
str(credit_w_numeric)
## 'data.frame':    10127 obs. of  22 variables:
##  $ Attrition_Flag                                                                                                                    : Factor w/ 2 levels "Attrited Customer",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ Customer_Age                                                                                                                      : int  45 49 51 40 40 44 51 32 37 48 ...
##  $ Gender                                                                                                                            : Factor w/ 2 levels "F","M": 2 1 2 1 2 2 2 2 2 2 ...
##  $ Dependent_count                                                                                                                   : int  3 5 3 4 3 2 4 0 3 2 ...
##  $ Education_Level                                                                                                                   : Factor w/ 7 levels "College","Doctorate",..: 4 3 3 4 6 3 7 4 6 3 ...
##  $ Marital_Status                                                                                                                    : Factor w/ 4 levels "Divorced","Married",..: 2 3 2 4 2 2 2 4 3 3 ...
##  $ Income_Category                                                                                                                   : Factor w/ 6 levels "$120K +","$40K - $60K",..: 3 5 4 5 3 2 1 3 3 4 ...
##  $ Card_Category                                                                                                                     : Factor w/ 4 levels "Blue","Gold",..: 1 1 1 1 1 1 2 4 1 1 ...
##  $ Months_on_book                                                                                                                    : int  39 44 36 34 21 36 46 27 36 36 ...
##  $ Total_Relationship_Count                                                                                                          : int  5 6 4 3 5 3 6 2 5 6 ...
##  $ Months_Inactive_12_mon                                                                                                            : int  1 1 1 4 1 1 1 2 2 3 ...
##  $ Contacts_Count_12_mon                                                                                                             : int  3 2 0 1 0 2 3 2 0 3 ...
##  $ Credit_Limit                                                                                                                      : num  12691 8256 3418 3313 4716 ...
##  $ Total_Revolving_Bal                                                                                                               : int  777 864 0 2517 0 1247 2264 1396 2517 1677 ...
##  $ Avg_Open_To_Buy                                                                                                                   : num  11914 7392 3418 796 4716 ...
##  $ Total_Amt_Chng_Q4_Q1                                                                                                              : num  1.33 1.54 2.59 1.4 2.17 ...
##  $ Total_Trans_Amt                                                                                                                   : int  1144 1291 1887 1171 816 1088 1330 1538 1350 1441 ...
##  $ Total_Trans_Ct                                                                                                                    : int  42 33 20 20 28 24 31 36 24 32 ...
##  $ Total_Ct_Chng_Q4_Q1                                                                                                               : num  1.62 3.71 2.33 2.33 2.5 ...
##  $ Avg_Utilization_Ratio                                                                                                             : num  0.061 0.105 0 0.76 0 0.311 0.066 0.048 0.113 0.144 ...
##  $ Naive_Bayes_Classifier_Attrition_Flag_Card_Category_Contacts_Count_12_mon_Dependent_count_Education_Level_Months_Inactive_12_mon_1: num  9.34e-05 5.69e-05 2.11e-05 1.34e-04 2.17e-05 ...
##  $ Naive_Bayes_Classifier_Attrition_Flag_Card_Category_Contacts_Count_12_mon_Dependent_count_Education_Level_Months_Inactive_12_mon_2: num  1 1 1 1 1 ...

Adesso tutti i variabili quantitaivi sono numerici

Scelta delle colonne

credit_card_numeric_bool = sapply(credit_w_numeric,is.numeric)
credit_card_numeric_names = names(credit_card[credit_card_numeric_bool])
# Rimozione dell'ultimo e penultimo in quanto usato per machine learning
# e del primo in quanto ID delle persone
credit_card_numeric_names = credit_card_numeric_names[c(-15,-16)]
print("Colonne scelte: ")
## [1] "Colonne scelte: "
print(credit_card_numeric_names)
##  [1] "Customer_Age"             "Dependent_count"         
##  [3] "Months_on_book"           "Total_Relationship_Count"
##  [5] "Months_Inactive_12_mon"   "Contacts_Count_12_mon"   
##  [7] "Credit_Limit"             "Total_Revolving_Bal"     
##  [9] "Avg_Open_To_Buy"          "Total_Amt_Chng_Q4_Q1"    
## [11] "Total_Trans_Amt"          "Total_Trans_Ct"          
## [13] "Total_Ct_Chng_Q4_Q1"      "Avg_Utilization_Ratio"

Analisi Primaria

Analisi_Primaria <- function(data){
  print(paste("Numeri di osservazione: ",ncol(data)))
  print(paste("Numeri di variabili: ",nrow(data)))
}
Analisi_Primaria(credit_w_numeric[ ,credit_card_numeric_names])
## [1] "Numeri di osservazione:  14"
## [1] "Numeri di variabili:  10127"

Analisi non modificato

sum_info_c = lapply(credit_card_numeric_names, function(ele) {
  colummn = na.omit(credit_w_numeric[, ele])
  univariate_analysis(colummn, ele)
})

Analisi

Customer_Age

visualization_continuos(na.omit(credit_w_numeric[,"Customer_Age"]), sum_info_c[1],"Customer_Age")
## [[1]]
## [[1]]$Customer_Age
## [[1]]$Customer_Age$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   26.00   41.00   46.00   46.33   52.00   73.00 
## 
## [[1]]$Customer_Age$Variance
## [1] 64.27
## 
## [[1]]$Customer_Age$Standard_Deviation
## [1] 8.02
## 
## [[1]]$Customer_Age$Moda
## [[1]]$Customer_Age$Moda$Mode
## [1] 44
## 
## [[1]]$Customer_Age$Moda$Frequency
## [1] 500
## 
## Call:
##  density.default(x = data)
## 
## Data: data (10127 obs.); Bandwidth 'bw' = 1.141
## 
##        x               y            
##  Min.   :22.58   Min.   :3.900e-07  
##  1st Qu.:36.04   1st Qu.:3.047e-03  
##  Median :49.50   Median :1.262e-02  
##  Mean   :49.50   Mean   :1.855e-02  
##  3rd Qu.:62.96   3rd Qu.:3.461e-02  
##  Max.   :76.42   Max.   :4.824e-02

Possiamo dedurre che la distribuzione è per lo più una gaussiana e che la maggior parte delle persone compreso tra 41.00 e 52.00 anni, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma La piu grande occoranze è 500 a 44 anni alineati alla retta qq della norma. Gli outlier invece si trovano ad eta di 73 e 70

Months_on_book

visualization_continuos(na.omit(credit_w_numeric[,"Months_on_book"]), sum_info_c[3],"Months_on_book")
## [[1]]
## [[1]]$Months_on_book
## [[1]]$Months_on_book$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   13.00   31.00   36.00   35.93   40.00   56.00 
## 
## [[1]]$Months_on_book$Variance
## [1] 63.78
## 
## [[1]]$Months_on_book$Standard_Deviation
## [1] 7.99
## 
## [[1]]$Months_on_book$Moda
## [[1]]$Months_on_book$Moda$Mode
## [1] 36
## 
## [[1]]$Months_on_book$Moda$Frequency
## [1] 2463
## 
## Call:
##  density.default(x = data)
## 
## Data: data (10127 obs.); Bandwidth 'bw' = 0.9556
## 
##        x               y            
##  Min.   :10.13   Min.   :3.333e-05  
##  1st Qu.:22.32   1st Qu.:5.783e-03  
##  Median :34.50   Median :1.472e-02  
##  Mean   :34.50   Mean   :2.050e-02  
##  3rd Qu.:46.68   3rd Qu.:2.774e-02  
##  Max.   :58.87   Max.   :1.209e-01

Possiamo dedurre che la distribuzione è per lo più una gaussiana e che la maggior parte delle persone sono registrati con la banca fra 31.00 e 40.00 mesi, La piu grande occoranze è 2463 a 36 mesi

Total_Relationship_Count

visualization_discrete(na.omit(
  credit_w_numeric[,"Total_Relationship_Count"]), sum_info_c[4],"Total_Relationship_Count")
## [[1]]
## [[1]]$Total_Relationship_Count
## [[1]]$Total_Relationship_Count$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   3.000   4.000   3.813   5.000   6.000 
## 
## [[1]]$Total_Relationship_Count$Variance
## [1] 2.42
## 
## [[1]]$Total_Relationship_Count$Standard_Deviation
## [1] 1.55
## 
## [[1]]$Total_Relationship_Count$Moda
## [[1]]$Total_Relationship_Count$Moda$Mode
## [1] 3
## 
## [[1]]$Total_Relationship_Count$Moda$Frequency
## [1] 2305
## 
## 
## 
## 
## [1] "freq: "
## 
## data
##    1    2    3    4    5    6 
##  910 1243 2305 1912 1891 1866 
## 
## [1] "percintile: "
## 
## data
##         1         2         3         4         5         6 
##  8.985879 12.274119 22.760936 18.880221 18.672855 18.425990

si osservare che la maggior parte delle persone hanno tra 3 e 5 prodotti coprendo il ~=60.31%, con la mggior parte avendo 3 prodotti a 2305 occoranze (~=22.76%) Si osserva che la differenza tra 4,5,6 prodotti è <1% e quindi si puo considerare di uguale possesso

Months_Inactive_12_mon

visualization_discrete(na.omit(
  credit_w_numeric[,"Months_Inactive_12_mon",]), sum_info_c[5],"Months_Inactive_12_mon")
## [[1]]
## [[1]]$Months_Inactive_12_mon
## [[1]]$Months_Inactive_12_mon$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   2.000   2.000   2.341   3.000   6.000 
## 
## [[1]]$Months_Inactive_12_mon$Variance
## [1] 1.02
## 
## [[1]]$Months_Inactive_12_mon$Standard_Deviation
## [1] 1.01
## 
## [[1]]$Months_Inactive_12_mon$Moda
## [[1]]$Months_Inactive_12_mon$Moda$Mode
## [1] 3
## 
## [[1]]$Months_Inactive_12_mon$Moda$Frequency
## [1] 3846
## 
## 
## 
## 
## [1] "freq: "
## 
## data
##    0    1    2    3    4    5    6 
##   29 2233 3282 3846  435  178  124 
## 
## [1] "percintile: "
## 
## data
##          0          1          2          3          4          5          6 
##  0.2863632 22.0499654 32.4084132 37.9776834  4.2954478  1.7576775  1.2244495

Possiamo osservare che la maggior parte delle persone rimangono innativi tra 1 e 3 mesi, con la maggior parte stando per 3 mesi con 3846 occoranze Si osserva che la maggior parte non vanno piu di 3 mesi prima di riattivare ma quasi sicuramente 1 mese e piu in quanto <1% rimangono attivi costantemente (0 mesi di innativita)

Contacts_Count_12_mon

visualization_discrete(na.omit(
  credit_w_numeric[,"Contacts_Count_12_mon"]), sum_info_c[6],"Contacts_Count_12_mon")
## [[1]]
## [[1]]$Contacts_Count_12_mon
## [[1]]$Contacts_Count_12_mon$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   2.000   2.000   2.455   3.000   6.000 
## 
## [[1]]$Contacts_Count_12_mon$Variance
## [1] 1.22
## 
## [[1]]$Contacts_Count_12_mon$Standard_Deviation
## [1] 1.11
## 
## [[1]]$Contacts_Count_12_mon$Moda
## [[1]]$Contacts_Count_12_mon$Moda$Mode
## [1] 3
## 
## [[1]]$Contacts_Count_12_mon$Moda$Frequency
## [1] 3380
## 
## 
## 
## 
## [1] "freq: "
## 
## data
##    0    1    2    3    4    5    6 
##  399 1499 3227 3380 1392  176   54 
## 
## [1] "percintile: "
## 
## data
##         0         1         2         3         4         5         6 
##  3.939962 14.802014 31.865311 33.376123 13.745433  1.737928  0.533228

Possiamo osservare che la maggior parte delle persone hanno tra 2 e 3 contanti/12mesi, con la maggior parte avendo 3 contanti con 3380 occoranze

Credit_Limit

visualization_continuos(na.omit(credit_w_numeric[,"Credit_Limit"]), sum_info_c[7],"Credit_Limit")
## [[1]]
## [[1]]$Credit_Limit
## [[1]]$Credit_Limit$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1438    2555    4549    8632   11068   34516 
## 
## [[1]]$Credit_Limit$Variance
## [1] 82605861
## 
## [[1]]$Credit_Limit$Standard_Deviation
## [1] 9088.78
## 
## [[1]]$Credit_Limit$Moda
## [[1]]$Credit_Limit$Moda$Mode
## [1] 34516
## 
## [[1]]$Credit_Limit$Moda$Frequency
## [1] 508
## 
## Call:
##  density.default(x = data)
## 
## Data: data (10127 obs.); Bandwidth 'bw' = 903.9
## 
##        x               y            
##  Min.   :-1273   Min.   :2.553e-07  
##  1st Qu.: 8352   1st Qu.:5.913e-06  
##  Median :17977   Median :1.145e-05  
##  Mean   :17977   Mean   :2.594e-05  
##  3rd Qu.:27602   3rd Qu.:2.660e-05  
##  Max.   :37228   Max.   :1.574e-04

Possiamo osservare che la maggior parte delle persone hanno un limite di credito tra 2555 e 11068, ed esiste un anomalia al limite superiore dove non rispetta la descrescita delle occoranze del limite di credito con 34516 avendo 508 occoranze ed essendo il max pur non facendo parte del IQR

Total_Revolving_Bal

visualization_continuos(na.omit(
  credit_w_numeric[,"Total_Revolving_Bal"]), sum_info_c[8],"Total_Revolving_Bal")
## [[1]]
## [[1]]$Total_Revolving_Bal
## [[1]]$Total_Revolving_Bal$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       0     359    1276    1163    1784    2517 
## 
## [[1]]$Total_Revolving_Bal$Variance
## [1] 664204.4
## 
## [[1]]$Total_Revolving_Bal$Standard_Deviation
## [1] 814.99
## 
## [[1]]$Total_Revolving_Bal$Moda
## [[1]]$Total_Revolving_Bal$Moda$Mode
## [1] 0
## 
## [[1]]$Total_Revolving_Bal$Moda$Frequency
## [1] 2470
## 
## Call:
##  density.default(x = data)
## 
## Data: data (10127 obs.); Bandwidth 'bw' = 116
## 
##        x                y            
##  Min.   :-347.9   Min.   :2.141e-06  
##  1st Qu.: 455.3   1st Qu.:1.690e-04  
##  Median :1258.5   Median :3.021e-04  
##  Mean   :1258.5   Mean   :3.108e-04  
##  3rd Qu.:2061.7   3rd Qu.:4.447e-04  
##  Max.   :2864.9   Max.   :8.415e-04

Possiamo notare che la maggior parte delle persone hanno Prestito a saldo rotativo compresa tra 359 e 1784, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Possiamo notare che la maggior parte delle persone hanno un Prestito a saldo rotativo a 0, 2470 in totale Per analizare quelli che hanno serve ignorare quelli senza

Rimozione degli zero

rm_0_data = rm_0(na.omit(
  credit_w_numeric[,"Total_Revolving_Bal"]))
visualization_continuos(rm_0_data, univariate_analysis(rm_0_data,"Total_Revolving_Bal"),"Total_Revolving_Bal")
## $Total_Revolving_Bal
## $Total_Revolving_Bal$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     132    1132    1524    1538    1935    2517 
## 
## $Total_Revolving_Bal$Variance
## [1] 301542.4
## 
## $Total_Revolving_Bal$Standard_Deviation
## [1] 549.13
## 
## $Total_Revolving_Bal$Moda
## $Total_Revolving_Bal$Moda$Mode
## [1] 2517
## 
## $Total_Revolving_Bal$Moda$Frequency
## [1] 508
## 
## Call:
##  density.default(x = data)
## 
## Data: data (7657 obs.);  Bandwidth 'bw' = 82.62
## 
##        x                y            
##  Min.   :-115.9   Min.   :4.030e-08  
##  1st Qu.: 604.3   1st Qu.:1.053e-04  
##  Median :1324.5   Median :3.810e-04  
##  Mean   :1324.5   Mean   :3.468e-04  
##  3rd Qu.:2044.7   3rd Qu.:5.380e-04  
##  Max.   :2764.9   Max.   :6.810e-04

Possiamo notare che la maggior parte delle persone hanno Prestito a saldo rotativo compresa tra 1132 e 1935, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Possiamo notare che la maggior parte delle persone hanno un Prestito a saldo rotativo a 2517 per un totale di 508 persone esendo fuori dal IQR

Avg_Open_To_Buy

visualization_continuos(na.omit(
  credit_w_numeric[,"Avg_Open_To_Buy"]), sum_info_c[9],"Avg_Open_To_Buy")
## [[1]]
## [[1]]$Avg_Open_To_Buy
## [[1]]$Avg_Open_To_Buy$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       3    1324    3474    7469    9859   34516 
## 
## [[1]]$Avg_Open_To_Buy$Variance
## [1] 82640560
## 
## [[1]]$Avg_Open_To_Buy$Standard_Deviation
## [1] 9090.69
## 
## [[1]]$Avg_Open_To_Buy$Moda
## [[1]]$Avg_Open_To_Buy$Moda$Mode
## [1] 1438.3
## 
## [[1]]$Avg_Open_To_Buy$Moda$Frequency
## [1] 324
## 
## Call:
##  density.default(x = data)
## 
## Data: data (10127 obs.); Bandwidth 'bw' = 906.2
## 
##        x               y            
##  Min.   :-2716   Min.   :5.349e-08  
##  1st Qu.: 7272   1st Qu.:5.472e-06  
##  Median :17260   Median :1.138e-05  
##  Mean   :17260   Mean   :2.501e-05  
##  3rd Qu.:27247   3rd Qu.:2.493e-05  
##  Max.   :37235   Max.   :1.607e-04

Possiamo notare che la maggior parte delle persone disponibili per acquistare una linea di credito sono compresa tra 1324 e 9859, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Possiamo notare che la maggior parte delle persone hanno un Prestito a saldo rotativo a 2517 per un totale di 508 persone esendo fuori dal IQR

Total_Amt_Chng_Q4_Q1

visualization_continuos(na.omit(
  credit_w_numeric[,"Total_Amt_Chng_Q4_Q1"]), sum_info_c[10],"Total_Amt_Chng_Q4_Q1")
## [[1]]
## [[1]]$Total_Amt_Chng_Q4_Q1
## [[1]]$Total_Amt_Chng_Q4_Q1$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.6310  0.7360  0.7599  0.8590  3.3970 
## 
## [[1]]$Total_Amt_Chng_Q4_Q1$Variance
## [1] 0.05
## 
## [[1]]$Total_Amt_Chng_Q4_Q1$Standard_Deviation
## [1] 0.22
## 
## [[1]]$Total_Amt_Chng_Q4_Q1$Moda
## [[1]]$Total_Amt_Chng_Q4_Q1$Moda$Mode
## [1] 0.791
## 
## [[1]]$Total_Amt_Chng_Q4_Q1$Moda$Frequency
## [1] 36
## 
## Call:
##  density.default(x = data)
## 
## Data: data (10127 obs.); Bandwidth 'bw' = 0.02421
## 
##        x                  y            
##  Min.   :-0.07263   Min.   :0.0000000  
##  1st Qu.: 0.81294   1st Qu.:0.0009398  
##  Median : 1.69850   Median :0.0068703  
##  Mean   : 1.69850   Mean   :0.2820299  
##  3rd Qu.: 2.58406   3rd Qu.:0.1170530  
##  Max.   : 3.46963   Max.   :2.4673806

Possiamo notare che la maggior parte delle Variazione dell’importo della transazione (Q4 rispetto a Q1) è compresa tra 0.6310 e 0.8590, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Possiamo notare che la maggior parte delle Variazione dell’importo della transazione (Q4 rispetto a Q1) sono a 0.791 con 36 Variazione

Rimozione di outlier

rm_outlier_data = rm_oultiers(na.omit(credit_w_numeric[,"Total_Amt_Chng_Q4_Q1"]),.98)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"Total_Amt_Chng_Q4_Q1"),"Total_Amt_Chng_Q4_Q1")
## $Total_Amt_Chng_Q4_Q1
## $Total_Amt_Chng_Q4_Q1$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.2510  0.6290  0.7320  0.7411  0.8480  1.2690 
## 
## $Total_Amt_Chng_Q4_Q1$Variance
## [1] 0.03
## 
## $Total_Amt_Chng_Q4_Q1$Standard_Deviation
## [1] 0.17
## 
## $Total_Amt_Chng_Q4_Q1$Moda
## $Total_Amt_Chng_Q4_Q1$Moda$Mode
## [1] 0.791
## 
## $Total_Amt_Chng_Q4_Q1$Moda$Frequency
## [1] 36
## 
## Call:
##  density.default(x = data)
## 
## Data: data (9822 obs.);  Bandwidth 'bw' = 0.0234
## 
##        x                y            
##  Min.   :0.1808   Min.   :0.0000433  
##  1st Qu.:0.4704   1st Qu.:0.1271346  
##  Median :0.7600   Median :0.5689233  
##  Mean   :0.7600   Mean   :0.8624335  
##  3rd Qu.:1.0496   3rd Qu.:1.5598759  
##  Max.   :1.3392   Max.   :2.5517658

Possiamo dedurre che la distribuzione è semi-normato e che la maggior parte delle Variazione dell’importo della transazione (Q4 rispetto a Q1) sono compresa tra 0.6290 e 0.8480, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Possiamo notare che la maggior parte delle Variazione delle Variazione dell’importo della transazione (Q4 rispetto a Q1) sono a 0.791 con 36 Variazione

Total_Trans_Amt

visualization_continuos(na.omit(
  credit_w_numeric[,"Total_Trans_Amt"]), sum_info_c[11],"Total_Trans_Amt")
## [[1]]
## [[1]]$Total_Trans_Amt
## [[1]]$Total_Trans_Amt$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     510    2156    3899    4404    4741   18484 
## 
## [[1]]$Total_Trans_Amt$Variance
## [1] 11540487
## 
## [[1]]$Total_Trans_Amt$Standard_Deviation
## [1] 3397.13
## 
## [[1]]$Total_Trans_Amt$Moda
## [[1]]$Total_Trans_Amt$Moda$Mode
## [1] 4253 4509
## 
## [[1]]$Total_Trans_Amt$Moda$Frequency
## [1] 11
## 
## Call:
##  density.default(x = data)
## 
## Data: data (10127 obs.); Bandwidth 'bw' = 274.5
## 
##        x                 y            
##  Min.   : -313.6   Min.   :1.640e-09  
##  1st Qu.: 4591.7   1st Qu.:2.146e-06  
##  Median : 9497.0   Median :1.323e-05  
##  Mean   : 9497.0   Mean   :5.092e-05  
##  3rd Qu.:14402.3   3rd Qu.:3.987e-05  
##  Max.   :19307.6   Max.   :2.976e-04

Possiamo notare che la maggior parte delle Importe totali delle transazioni sono compresa tra 2156 e 4741, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Possiamo notare che la maggior parte delle Importe totali delle transazioni sono a 4253 e 4509 con 11 transazioni

Total_Trans_Ct

visualization_continuos(na.omit(
  credit_w_numeric[,"Total_Trans_Ct"]), sum_info_c[12],"Total_Trans_Ct")
## [[1]]
## [[1]]$Total_Trans_Ct
## [[1]]$Total_Trans_Ct$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   10.00   45.00   67.00   64.86   81.00  139.00 
## 
## [[1]]$Total_Trans_Ct$Variance
## [1] 550.96
## 
## [[1]]$Total_Trans_Ct$Standard_Deviation
## [1] 23.47
## 
## [[1]]$Total_Trans_Ct$Moda
## [[1]]$Total_Trans_Ct$Moda$Mode
## [1] 81
## 
## [[1]]$Total_Trans_Ct$Moda$Frequency
## [1] 208
## 
## Call:
##  density.default(x = data)
## 
## Data: data (10127 obs.); Bandwidth 'bw' = 3.34
## 
##        x                   y            
##  Min.   : -0.01909   Min.   :1.860e-07  
##  1st Qu.: 37.24046   1st Qu.:1.141e-03  
##  Median : 74.50000   Median :4.058e-03  
##  Mean   : 74.50000   Mean   :6.703e-03  
##  3rd Qu.:111.75954   3rd Qu.:1.182e-02  
##  Max.   :149.01909   Max.   :1.885e-02

Possiamo dedurre che la distribuzione è semi-normato positivamente assimetrica e che la maggior parte delle Conteggio totale delle transazioni sono compresa tra 45.00 e 81.00, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Possiamo notare che la maggior parte delle Variazione delle Conteggio totale delle transazioni sono a 81 con 208 occoranze

Total_Ct_Chng_Q4_Q1

visualization_continuos(na.omit(
  credit_w_numeric[,"Total_Ct_Chng_Q4_Q1"]), sum_info_c[13],"Total_Ct_Chng_Q4_Q1")
## [[1]]
## [[1]]$Total_Ct_Chng_Q4_Q1
## [[1]]$Total_Ct_Chng_Q4_Q1$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.5820  0.7020  0.7122  0.8180  3.7140 
## 
## [[1]]$Total_Ct_Chng_Q4_Q1$Variance
## [1] 0.06
## 
## [[1]]$Total_Ct_Chng_Q4_Q1$Standard_Deviation
## [1] 0.24
## 
## [[1]]$Total_Ct_Chng_Q4_Q1$Moda
## [[1]]$Total_Ct_Chng_Q4_Q1$Moda$Mode
## [1] 0.667
## 
## [[1]]$Total_Ct_Chng_Q4_Q1$Moda$Frequency
## [1] 171
## 
## Call:
##  density.default(x = data)
## 
## Data: data (10127 obs.); Bandwidth 'bw' = 0.02506
## 
##        x                  y           
##  Min.   :-0.07518   Min.   :0.000000  
##  1st Qu.: 0.89091   1st Qu.:0.001310  
##  Median : 1.85700   Median :0.007164  
##  Mean   : 1.85700   Mean   :0.258526  
##  3rd Qu.: 2.82309   3rd Qu.:0.120710  
##  Max.   : 3.78918   Max.   :2.289734

Possiamo notare che la maggior parte delle Variazione delle Variazione nel conteggio delle transazioni (Q4 rispetto a Q1) è compresa tra 0.5820 e 0.8180, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Possiamo notare che la maggior parte delle Variazione dell’importo della transazione (Q4 rispetto a Q1) sono a 0.667 con 171 Variazione

Rimozione di outlier

rm_outlier_data = rm_oultiers(na.omit(credit_w_numeric[,"Total_Ct_Chng_Q4_Q1"]),.98)
visualization_continuos(rm_outlier_data, univariate_analysis(rm_outlier_data,"Total_Ct_Chng_Q4_Q1"),"Total_Ct_Chng_Q4_Q1")
## $Total_Ct_Chng_Q4_Q1
## $Total_Ct_Chng_Q4_Q1$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1610  0.5810  0.6980  0.6959  0.8100  1.2630 
## 
## $Total_Ct_Chng_Q4_Q1$Variance
## [1] 0.03
## 
## $Total_Ct_Chng_Q4_Q1$Standard_Deviation
## [1] 0.19
## 
## $Total_Ct_Chng_Q4_Q1$Moda
## $Total_Ct_Chng_Q4_Q1$Moda$Mode
## [1] 0.667
## 
## $Total_Ct_Chng_Q4_Q1$Moda$Frequency
## [1] 171
## 
## Call:
##  density.default(x = data)
## 
## Data: data (9878 obs.);  Bandwidth 'bw' = 0.02444
## 
##        x                 y            
##  Min.   :0.08769   Min.   :0.0001072  
##  1st Qu.:0.39985   1st Qu.:0.1444697  
##  Median :0.71200   Median :0.5058148  
##  Mean   :0.71200   Mean   :0.8001016  
##  3rd Qu.:1.02415   3rd Qu.:1.3695197  
##  Max.   :1.33631   Max.   :2.3510407

Possiamo dedurre che la distribuzione è semi-normato e che la maggior parte delle Variazione delle Variazione nel conteggio delle transazioni (Q4 rispetto a Q1) è compresa tra 0.5810 e 0.8100, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Possiamo notare che la maggior parte delle Variazione elle Variazione delle Variazione nel conteggio delle transazioni (Q4 rispetto a Q1) sono a 0.667 con 171 Variazione

Avg_Utilization_Ratio

visualization_continuos(na.omit(
  credit_w_numeric[,"Avg_Utilization_Ratio"]), sum_info_c[14],"Avg_Utilization_Ratio")
## [[1]]
## [[1]]$Avg_Utilization_Ratio
## [[1]]$Avg_Utilization_Ratio$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0230  0.1760  0.2749  0.5030  0.9990 
## 
## [[1]]$Avg_Utilization_Ratio$Variance
## [1] 0.08
## 
## [[1]]$Avg_Utilization_Ratio$Standard_Deviation
## [1] 0.28
## 
## [[1]]$Avg_Utilization_Ratio$Moda
## [[1]]$Avg_Utilization_Ratio$Moda$Mode
## [1] 0
## 
## [[1]]$Avg_Utilization_Ratio$Moda$Frequency
## [1] 2470
## 
## Call:
##  density.default(x = data)
## 
## Data: data (10127 obs.); Bandwidth 'bw' = 0.03923
## 
##        x                 y            
##  Min.   :-0.1177   Min.   :0.0000855  
##  1st Qu.: 0.1909   1st Qu.:0.3492169  
##  Median : 0.4995   Median :0.6801743  
##  Mean   : 0.4995   Mean   :0.8090999  
##  3rd Qu.: 0.8081   3rd Qu.:0.9021584  
##  Max.   : 1.1167   Max.   :3.1604425

Possiamo dedurre che la distribuzione è semi-normato e che la maggior parte delle Rapporto medio di utilizzo della carta è compresa tra 0.0230 e 0.5030, essendo rispettivamente il 1° e il 3° quantile e con maggior densita alineati alla retta qq della norma. Possiamo notare che la maggior parte delle Variazione elle Variazione delle Variazione nel conteggio delle transazioni (Q4 rispetto a Q1) sono a 0 con 2470 Variazione

#House price Univariate Qualitative

Pulizia dei dati

HP$MSZoning <- factor(
  HP$MSZoning,
  levels = c("RL", "RM", "RH", "FV", "C (all)"),
  labels = c("Residential Low Density", "Residential Medium Density", "Residential High Density", "Floating Village Residential", "Commercial"))

HP$MSSubClass <- factor(
  HP$MSSubClass,
  levels= c("20","30","40","45","50","60","70","75","80","85","90","120","150","160","180","190"),
  labels = c("1-STORY 1946 & NEWER ALL STYLES","1-STORY 1945 & OLDER","1-STORY FINISHED ATTIC ALL AGES" ,"1-1/2 STORY UNFINISHED ALL AGES", "1-1/2 STORY FINISHED ALL AGES",    "2-STORY 1946 & NEWER", "2-STORY 1945 & OLDER", "2-1/2 STORY ALL AGES", "SPLIT OR MULTI-LEVEL", "SPLIT FOYER",  "DUPLEX - ALL STYLES AND AGES", "1-STORY PUD 1946 & NEWER", "1-1/2 STORY PUD ALL AGES", "2-STORY PUD 1946 & NEWER", "PUD MULTILEVEL - INCL SPLIT LEV/FOYER",     "FAMILY CONVERSION ALL STYLES AND AGES"),)


HP$LotShape <- factor(
  HP$LotShape,
  levels = c("Reg", "IR1", "IR2", "IR3"),
  labels = c("Regular", "Slightly irregular", "Moderately irregular", "Irregular"))

HP$LandContour <- factor(
  HP$LandContour,
  levels = c("Lvl", "Bnk", "HLS", "Low"),
  labels = c("Near Flat/Level", "Banked", "Hillside", "Depression"))

HP$Neighborhood <- factor(
  HP$Neighborhood,
  levels = c("Blmngtn", "Blueste", "BrDale", "BrkSide", "ClearCr", "CollgCr", "Crawfor", "Edwards", "Gilbert", "IDOTRR", "MeadowV", "Mitchel", "NAmes", "NoRidge", "NPkVill", "NridgHt", "NWAmes", "OldTown", "SWISU", "Sawyer", "SawyerW", "Somerst", "StoneBr", "Timber", "Veenker"),
  labels = c("Bloomington Heights", "Bluestem", "Briardale", "Brookside", "Clear Creek", "College Creek", "Crawford", "Edwards", "Gilbert", "Iowa DOT and Rail Road", "Meadow Village", "Mitchell", "North Ames", "Northridge", "Northpark Villa", "Northridge Heights", "Northwest Ames", "Old Town", "South & West of Iowa State University", "Sawyer", "Sawyer West", "Somerset", "Stone Brook", "Timberland", "Veenker"))

HP$BldgType <- factor(
  HP$BldgType,
  levels = c("1Fam", "2fmCon", "Duplex", "TwnhsE", "Twnhs"),
  labels = c("Single-family Detached", "Two-family Conversion", "Duplex", "Townhouse End Unit", "Townhouse Inside Unit"))

HP$MasVnrArea[HP$MasVnrArea == 0 | is.na(HP$MasVnrType)] <- NA

for (f in c("ExterQual", "ExterCond", "BsmtQual", "BsmtCond", "HeatingQC", "KitchenQual", "FireplaceQu", "GarageQual", "GarageCond")) {
  HP[, f] <- factor(
    HP[, f],
    levels = c("Po", "Fa", "TA", "Gd", "Ex"),
    labels = c("Poor", "Fair", "Average", "Good", "Excellent"))
}

levels(HP$CentralAir) <- c("No", "Yes")

HP$BsmtExposure <- factor(
  HP$BsmtExposure,
  levels = c("No", "Mn", "Av", "Gd"),
  labels = c("No", "Minimum", "Average", "Good"))

HP$GarageFinish <- factor(
  HP$GarageFinish,
  levels = c("Unf", "RFn", "Fin"),
  labels = c("Unfinished", "Rough finished", "Finished"))

HP$PavedDrive <- factor(
  HP$PavedDrive,
  levels = c("N", "P", "Y"),
  labels = c("Dirt/Graver", "Partial paved", "Paved"))

HP$Fence <- factor(
  HP$Fence,
  levels = c("MnWw", "GdWo", "MnPrv", "GdPrv"),
  labels = c("Minimum Wood/Wire", "Good Wood", "Minimum Privacy", "Good Privacy"))

HP$SaleType <- factor(
  HP$SaleType,
  levels = c("WD", "CWD", "VWD", "New", "COD", "Con", "ConLw", "ConLI", "ConLD", "Oth"),
  labels = c("Warranty Deed - Conventional", "Warranty Deed - Cash", "Warranty Deed - VA Loan", "Home just constructed and sold", "Court Officer", "Contract 15% Down payment", "Contract Low Down Payment", "Contract Low Interest", "Contract Low Down", "Other"))

HP$SaleCondition <- factor(
  HP$SaleCondition,
  levels = c("Normal", "Abnorml", "AdjLand", "Alloca", "Family", "Partial"),
  labels = c("Normal Sale", "Abnormal Sale", "Adjoining Land Purchase", "Allocation", "Sale between family members", "Home not completed"))


HP$OverallQual <- factor(
  HP$OverallQual,
  levels=c("1","2","3","4","5","6","7","8","9","10"))

HP$OverallCond <- factor(
  HP$OverallCond,
  levels=c("1","2","3","4","5","6","7","8","9","10")) 

for (f in c("BsmtFullBath", "BsmtHalfBath", "FullBath", "HalfBath", "BedroomAbvGr", "KitchenAbvGr", "TotRmsAbvGrd", "Fireplaces","GarageCars","MoSold","YrSold")) {
  HP[, f] <- factor(HP[, f])
}

HP$MiscFeature <- factor(
  HP$MiscFeature,
  levels =c("Elev","Gar2","Othr","Shed","TenC",NA) ,
  labels=c("Elevator","2nd Garage","Other","Shed","Tennis Court","No Feature"), 
  exclude = NULL)
attach(HP)
attach(credit_card)

##Funzione di analisi

Univar_Quality <- function(df,clmn, label=NULL, title=NULL) {
  
  Entries<-clmn
  tab<-sort(table(Entries), decreasing = T)
  freqtab<-round(prop.table(tab)*100,2)

  print(tab)
  print(freqtab)
  
  if(length(levels(clmn))<4){
      bar_plot <- ggplot(df,aes(x=clmn)) +
      geom_bar(fill = "red") +
      labs(title = paste("Distribution of elements from:", title),
           x = label,
           y = "Frequency")
    print(bar_plot)
  } else{
  bar_plot <- ggplot(df, aes(x=clmn)) +
    geom_bar(fill = "red") +
    coord_flip()+
    labs(title = paste("Distribution of elements from:", title),
         x = label,
         y = "Frequency")
  print(bar_plot)
  }
}

MSSubClass

Univar_Quality(
  HP, MSSubClass,
  label="Subclasses",
  title="Sub Classes")
## Entries
##       1-STORY 1946 & NEWER ALL STYLES                  2-STORY 1946 & NEWER 
##                                   536                                   299 
##         1-1/2 STORY FINISHED ALL AGES              1-STORY PUD 1946 & NEWER 
##                                   144                                    87 
##                  1-STORY 1945 & OLDER              2-STORY PUD 1946 & NEWER 
##                                    69                                    63 
##                  2-STORY 1945 & OLDER                  SPLIT OR MULTI-LEVEL 
##                                    60                                    58 
##          DUPLEX - ALL STYLES AND AGES FAMILY CONVERSION ALL STYLES AND AGES 
##                                    52                                    30 
##                           SPLIT FOYER                  2-1/2 STORY ALL AGES 
##                                    20                                    16 
##       1-1/2 STORY UNFINISHED ALL AGES PUD MULTILEVEL - INCL SPLIT LEV/FOYER 
##                                    12                                    10 
##       1-STORY FINISHED ATTIC ALL AGES              1-1/2 STORY PUD ALL AGES 
##                                     4                                     0 
## Entries
##       1-STORY 1946 & NEWER ALL STYLES                  2-STORY 1946 & NEWER 
##                                 36.71                                 20.48 
##         1-1/2 STORY FINISHED ALL AGES              1-STORY PUD 1946 & NEWER 
##                                  9.86                                  5.96 
##                  1-STORY 1945 & OLDER              2-STORY PUD 1946 & NEWER 
##                                  4.73                                  4.32 
##                  2-STORY 1945 & OLDER                  SPLIT OR MULTI-LEVEL 
##                                  4.11                                  3.97 
##          DUPLEX - ALL STYLES AND AGES FAMILY CONVERSION ALL STYLES AND AGES 
##                                  3.56                                  2.05 
##                           SPLIT FOYER                  2-1/2 STORY ALL AGES 
##                                  1.37                                  1.10 
##       1-1/2 STORY UNFINISHED ALL AGES PUD MULTILEVEL - INCL SPLIT LEV/FOYER 
##                                  0.82                                  0.68 
##       1-STORY FINISHED ATTIC ALL AGES              1-1/2 STORY PUD ALL AGES 
##                                  0.27                                  0.00

Possiamo notare che delle varie tipologie di abitazione che stiamo analizzando, le più comuni, con il 36.7% e il 20.5%, sono quelle a un piano e quelle a due piani successive al 1946 di tutti i stili. Inoltre le case con elementi ancora in costruzione come le “PUD” e le “Unfinished” hanno meno successo di quelle finite o recenti. Quattro elementi hanno valori trascurabili in quanto inferiori all ~1%, con “1-1/2 STORY PUD - ALL AGES” che non compare in nessun caso.

Zoning

Univar_Quality(
  HP,MSZoning,
  label="Zones",
  title="Zoning")
## Entries
##      Residential Low Density   Residential Medium Density 
##                         1151                          218 
## Floating Village Residential     Residential High Density 
##                           65                           16 
##                   Commercial 
##                           10 
## Entries
##      Residential Low Density   Residential Medium Density 
##                        78.84                        14.93 
## Floating Village Residential     Residential High Density 
##                         4.45                         1.10 
##                   Commercial 
##                         0.68

La maggior parte della popolazione (~79%) risiede in zone residenziali a bassa densità. Le zone commerciali rappresentano meno di ~1%, quindi appaiono trascurabili. Noto un diminuire della popolazione nelle aree “Residential” in base all’aumento della densità.

Street

Univar_Quality(
  HP,Street,
  label="Types",
  title="Streets")
## Entries
## Pave Grvl 
## 1454    6 
## Entries
##  Pave  Grvl 
## 99.59  0.41

Notiamo uno squilibrio dei dati (1454 entrate) verso “Pave”, cioè marciapiede. Le strade di ghiaia rappresentano meno dell’~1% dei dati (6 entrate), quindi deduco siano trascurabili.

Alley

Univar_Quality(
  HP,Alley,
  label="Types",
  title="Alley")
## Entries
## Grvl Pave 
##   50   41 
## Entries
##  Grvl  Pave 
## 54.95 45.05

Noto che la maggior parte delle case non ha strade interne di accesso, ma tra quelle che lo hanno (91 elementi) la distribuzione tra ghiaia e marciapiedi è bilanciata.

LotShape

Univar_Quality(
  HP,LotShape,
  label="Shapes",
  title="Lot Shape")
## Entries
##              Regular   Slightly irregular Moderately irregular 
##                  925                  484                   41 
##            Irregular 
##                   10 
## Entries
##              Regular   Slightly irregular Moderately irregular 
##                63.36                33.15                 2.81 
##            Irregular 
##                 0.68

Notiamo che 925 (il ~63%) delle abitazioni hanno forma regolare e il 484 (~33%) ha piccole irregolarità. Le case più irregolari in cambio rappresentano meno dell’ ~1% delle frequenze, mostrando come tendenzialmente esse siano meno comprate/vendute per questa qualità.

LandContour

Univar_Quality(
  HP,LandContour,
  label="Types",
  title="Land Contour")
## Entries
## Near Flat/Level          Banked        Hillside      Depression 
##            1311              63              50              36 
## Entries
## Near Flat/Level          Banked        Hillside      Depression 
##           89.79            4.32            3.42            2.47

Notiamo che tendenzialmente il ~90% circa delle case prese in analisi sono in posizioni quasi completamente piane. Case situate in zone con depressioni rappresentano la minoranza con solo 36 entrate in confronto alle 1311 della pianura.

Utilities

Univar_Quality(
  HP,Utilities,
  label="Types",
  title="Utilities")
## Entries
## AllPub NoSeWa 
##   1459      1 
## Entries
## AllPub NoSeWa 
##  99.93   0.07

Notiamo che il resto delle categorie di Utilities è completamente trascurabile, visto che solo una casa appare sotto la categoria “Senza collegamento alle fogne”, mentre tutte le altre possiedono tutte i principali servizi pubblici.

LotConfig

Univar_Quality(
  HP,LotConfig,
  label="Types",
  title="Lot Configurations")
## Entries
##  Inside  Corner CulDSac     FR2     FR3 
##    1052     263      94      47       4 
## Entries
##  Inside  Corner CulDSac     FR2     FR3 
##   72.05   18.01    6.44    3.22    0.27

Notiamo che la configurazione prevalente del lotto è quella interna con una frequenza di 1052, seguita poi da quella ad angolo di frequenza 263. Invece quelle con tre facciate sull’immobile sono solo 4, quindi trascurabili.

LandSlope

Univar_Quality(
  HP,LandSlope,
  label="Types",
  title="Land Slopes")
## Entries
##  Gtl  Mod  Sev 
## 1382   65   13 
## Entries
##   Gtl   Mod   Sev 
## 94.66  4.45  0.89

Notiamo che la maggior parte delle proprietà (~94%) è inclinata solo leggermente, dato coerente con LotContour che indicava una prevaelenza di case in pianura. Le abitazioni maggiormente inclinate hanno frequenza inferiore all’ ~1%, quindi sono trascurabili.

Neighborhood

Univar_Quality(
  HP,Neighborhood, 
  label="Neighborhoods",
  title="Neighborhoods")
## Entries
##                            North Ames                         College Creek 
##                                   225                                   150 
##                              Old Town                               Edwards 
##                                   113                                   100 
##                              Somerset                               Gilbert 
##                                    86                                    79 
##                    Northridge Heights                                Sawyer 
##                                    77                                    74 
##                        Northwest Ames                           Sawyer West 
##                                    73                                    59 
##                             Brookside                              Crawford 
##                                    58                                    51 
##                              Mitchell                            Northridge 
##                                    49                                    41 
##                            Timberland                Iowa DOT and Rail Road 
##                                    38                                    37 
##                           Clear Creek South & West of Iowa State University 
##                                    28                                    25 
##                           Stone Brook                   Bloomington Heights 
##                                    25                                    17 
##                        Meadow Village                             Briardale 
##                                    17                                    16 
##                               Veenker                       Northpark Villa 
##                                    11                                     9 
##                              Bluestem 
##                                     2 
## Entries
##                            North Ames                         College Creek 
##                                 15.41                                 10.27 
##                              Old Town                               Edwards 
##                                  7.74                                  6.85 
##                              Somerset                               Gilbert 
##                                  5.89                                  5.41 
##                    Northridge Heights                                Sawyer 
##                                  5.27                                  5.07 
##                        Northwest Ames                           Sawyer West 
##                                  5.00                                  4.04 
##                             Brookside                              Crawford 
##                                  3.97                                  3.49 
##                              Mitchell                            Northridge 
##                                  3.36                                  2.81 
##                            Timberland                Iowa DOT and Rail Road 
##                                  2.60                                  2.53 
##                           Clear Creek South & West of Iowa State University 
##                                  1.92                                  1.71 
##                           Stone Brook                   Bloomington Heights 
##                                  1.71                                  1.16 
##                        Meadow Village                             Briardale 
##                                  1.16                                  1.10 
##                               Veenker                       Northpark Villa 
##                                  0.75                                  0.62 
##                              Bluestem 
##                                  0.14

Notiamo che le frequenze maggiori si verificano per North Ames (225), seguita da College Creek (150), Old town e Edwards che sono vicini (113 e 100). I Vicinati meno significativi a livello di frequenza sono “Veenker”, “North Park Villa” e “Bluestem”, tutti sotto l’ ~1%.

Condition1

Univar_Quality(
  HP,Condition1,
  label="Conditions",
  title="First Conditions")
## Entries
##   Norm  Feedr Artery   RRAn   PosN   RRAe   PosA   RRNn   RRNe 
##   1260     81     48     26     19     11      8      5      2 
## Entries
##   Norm  Feedr Artery   RRAn   PosN   RRAe   PosA   RRNn   RRNe 
##  86.30   5.55   3.29   1.78   1.30   0.75   0.55   0.34   0.14

Notiamo che la maggior parte della popolazione analizzata risiede in luoghi senza vicinanze degne di nota. Le più diffuse tra queste sono quella a una strada di svincolo o a una strada arteria. Molto meno diffuse invece sono le case in prossimità della ferrovia, le quali in questo caso risultano trascurabili.

Condition2

Univar_Quality(
  HP,Condition2,
  label="Conditions",
  title="Second Conditions")
## Entries
##   Norm  Feedr Artery   PosN   RRNn   PosA   RRAe   RRAn 
##   1445      6      2      2      2      1      1      1 
## Entries
##   Norm  Feedr Artery   PosN   RRNn   PosA   RRAe   RRAn 
##  98.97   0.41   0.14   0.14   0.14   0.07   0.07   0.07

Notiamo che i dati sono molto sbilanciati, con 1445 (o il 98%) case senza alcuna vicinanza degna di nota. Tutte le altre condizioni hanno frequenza inferiore all’ ~1%.

BldgType

Univar_Quality(
  HP,BldgType, 
  label="Types",
  title="Building Types")
## Entries
## Single-family Detached     Townhouse End Unit                 Duplex 
##                   1220                    114                     52 
##  Townhouse Inside Unit  Two-family Conversion 
##                     43                     31 
## Entries
## Single-family Detached     Townhouse End Unit                 Duplex 
##                  83.56                   7.81                   3.56 
##  Townhouse Inside Unit  Two-family Conversion 
##                   2.95                   2.12

Notiamo che il tipo di abitazione più diffuso è quello staccato per una famiglia con l’ ~84% di frequenze. Le unità terminali di residenze a schiera hanno frequenza 114, mentre le altre tipologie hanno frequenze decrescenti e molto basse, ma non inferiori all’~1%.

HouseStyle

Univar_Quality(
  HP,HouseStyle,
  label="Styles",
  title="House Styles")
## Entries
## 1Story 2Story 1.5Fin   SLvl SFoyer 1.5Unf 2.5Unf 2.5Fin 
##    726    445    154     65     37     14     11      8 
## Entries
## 1Story 2Story 1.5Fin   SLvl SFoyer 1.5Unf 2.5Unf 2.5Fin 
##  49.73  30.48  10.55   4.45   2.53   0.96   0.75   0.55

Notiamo che gli stili più diffusi sono quello a un piano e quello a due piani che insieme compongono l’\80% degli elementi. Le abitazioni in stato non finito invece rappresentano la minoranza in questo grafico, risultando ognuna sotto l’\1%.

OverallQual

Univar_Quality(
  HP,OverallQual,
  label="Scores",
  title="House Quality")
## Entries
##   5   6   7   8   4   9   3  10   2   1 
## 397 374 319 168 116  43  20  18   3   2 
## Entries
##     5     6     7     8     4     9     3    10     2     1 
## 27.19 25.62 21.85 11.51  7.95  2.95  1.37  1.23  0.21  0.14

Notiamo che la maggioranza delle abitazioni considerate vengono considerate a livello di qualità attorno o superiore alla media, con frequenza di 397 per “nella media”, 374 per “sopra la media” e 319 per “buono”. Tra i voti negativi il più degno di nota è il 4, con 116 entrate. Il numero complessivo di case valutate sotto il 3 è di 5, quindi sono frequenze trascurabili in questo caso.

OverallCond

Univar_Quality(
  HP,OverallCond,
  label="Scores",
  title="House Conditions")
## Entries
##   5   6   7   8   4   3   9   2   1  10 
## 821 252 205  72  57  25  22   5   1   0 
## Entries
##     5     6     7     8     4     3     9     2     1    10 
## 56.23 17.26 14.04  4.93  3.90  1.71  1.51  0.34  0.07  0.00

Troviamo la maggior parte delle frequenze sotto la valutazione “nella media”, con una prevalenza verso le valutazioni positive. Notiamo che nessuna casa ha valutazione 10, e le case valutate sotto il 3 sono in totale 6, un numero trascurabile rispetto alle 821 valutate 5.

RoofStyle

Univar_Quality(
  HP,Condition2,
  label="Styles",
  title="Roof Styles")
## Entries
##   Norm  Feedr Artery   PosN   RRNn   PosA   RRAe   RRAn 
##   1445      6      2      2      2      1      1      1 
## Entries
##   Norm  Feedr Artery   PosN   RRNn   PosA   RRAe   RRAn 
##  98.97   0.41   0.14   0.14   0.14   0.07   0.07   0.07

I dati sono sbilanciati completamente verso lo stile normale (~99% circa), rendendo trascurabili tutte le altre opzioni aventi tutte meno del 0.5% frequenza.

RoofMatl

Univar_Quality(
  HP,RoofMatl, 
  label="Materials",
  title="Roof Materials")
## Entries
## CompShg Tar&Grv WdShngl WdShake ClyTile Membran   Metal    Roll 
##    1434      11       6       5       1       1       1       1 
## Entries
## CompShg Tar&Grv WdShngl WdShake ClyTile Membran   Metal    Roll 
##   98.22    0.75    0.41    0.34    0.07    0.07    0.07    0.07

Notiamo che i dati sono sbilanciati (~98%) verso l’utilizzo di una tipologia normale di materiale per il tetto, mentre tutte le altre sono estremamente basse .

Exterior1st

Univar_Quality(
  HP,Exterior1st,
  label="Materials",
  title="First Exterior Covering")
## Entries
## VinylSd HdBoard MetalSd Wd Sdng Plywood CemntBd BrkFace WdShing  Stucco AsbShng 
##     515     222     220     206     108      61      50      26      25      20 
## BrkComm   Stone AsphShn  CBlock ImStucc 
##       2       2       1       1       1 
## Entries
## VinylSd HdBoard MetalSd Wd Sdng Plywood CemntBd BrkFace WdShing  Stucco AsbShng 
##   35.27   15.21   15.07   14.11    7.40    4.18    3.42    1.78    1.71    1.37 
## BrkComm   Stone AsphShn  CBlock ImStucc 
##    0.14    0.14    0.07    0.07    0.07

Notiamo che le coperture in vinile sono le più diffuse con una frequenza del ~35%, mentre quelle in tavola dura, quelle in metallo e quelle in legno sono tutte diffuse in modo bilanciato, avendo a ~15% di frequenza ognuno. Più elementi, come le coperture in pietra, asfalto, mattoni e stucco sono presenti in quantità trascurabili.

Exterior2nd

Univar_Quality(
  HP,Exterior2nd,
  label="Materials",
  title="Second Exterior Covering")
## Entries
## VinylSd MetalSd HdBoard Wd Sdng Plywood CmentBd Wd Shng  Stucco BrkFace AsbShng 
##     504     214     207     197     142      60      38      26      25      20 
## ImStucc Brk Cmn   Stone AsphShn  CBlock   Other 
##      10       7       5       3       1       1 
## Entries
## VinylSd MetalSd HdBoard Wd Sdng Plywood CmentBd Wd Shng  Stucco BrkFace AsbShng 
##   34.52   14.66   14.18   13.49    9.73    4.11    2.60    1.78    1.71    1.37 
## ImStucc Brk Cmn   Stone AsphShn  CBlock   Other 
##    0.68    0.48    0.34    0.21    0.07    0.07

Notiamo che tra i secondi rivestimenti, il più diffuso rimane quello in vinile con 504 di frequenza, con quello di metallo, quello di tavola dura e quelli in legno distribuiti equamente ognuno con all’incirca 220 di frequenza. I meno presenti invece risultano essere quelli in imitazione di stucco, in asfato, in pietra,in mattoni e in calcestruzzo.

MasVnrType

Univar_Quality(
  HP,MasVnrType,
  label="Types",
  title="Masonry Veneer Types")
## Entries
##    None BrkFace   Stone  BrkCmn 
##     864     445     128      15 
## Entries
##    None BrkFace   Stone  BrkCmn 
##   59.50   30.65    8.82    1.03

Notiamo che la cosa più diffusa è l’assenza di rivestimenti in muratura (~\60%). Tra gli elementi restanti, il rivestimento più diffuso è quello in mattoni (~30%), seguito da quello in pietra (~9%).

ExterQual

Univar_Quality(
  HP,ExterQual,
  label="Scores",
  title="External Quality")
## Entries
##   Average      Good Excellent      Fair      Poor 
##       906       488        52        14         0 
## Entries
##   Average      Good Excellent      Fair      Poor 
##     62.05     33.42      3.56      0.96      0.00

Notiamo che la maggior parte delle valutazioni cade sotto “Nella media” con frequenza di 906. Le valutazioni “buone” rappresentano il ~33% di quelle analizzate, mentre quelle negative risultano trascurabili.

ExterCond

Univar_Quality(
  HP,ExterCond,
  label="Scores",
  title="External Condition")
## Entries
##   Average      Good      Fair Excellent      Poor 
##      1282       146        28         3         1 
## Entries
##   Average      Good      Fair Excellent      Poor 
##     87.81     10.00      1.92      0.21      0.07

Notiamo che tra le valutazioni delle condizioni esterne, la più diffusa è “nella media” rappresentando l’ ~88% delle frequenze. Le restanti percentuali sono principalmente trovate in “buono” (~10%) e “accettabile” (~2%). Le restanti valutazioni risultano trascurabili.

Foundation

Univar_Quality(
  HP,Foundation,
  label="Materials",
  title="Foundation Types")
## Entries
##  PConc CBlock BrkTil   Slab  Stone   Wood 
##    647    634    146     24      6      3 
## Entries
##  PConc CBlock BrkTil   Slab  Stone   Wood 
##  44.32  43.42  10.00   1.64   0.41   0.21

Tra le tipologie di fondamenta notiamo una equa distibuzione della maggior parte delle frequenze tra cemento (~44%) e calcestruzzo (~43%). Tra le restanti tipologie, quella in mattoni rappresenta il ~10% con 146 di frequenza, mentre quelle in legno e pietra appaiono trascurabili.

BsmtQual

Univar_Quality(
  HP,BsmtQual,
  label="Score",
  title="Basement Quality")
## Entries
##   Average      Good Excellent      Fair      Poor 
##       649       618       121        35         0 
## Entries
##   Average      Good Excellent      Fair      Poor 
##     45.61     43.43      8.50      2.46      0.00

Notiamo che tra gli immobili che hanno il seminterrato, la maggior parte di questi si presentano di qualità medio/buona con frequenze di rispettivamente 649 e 618. Notiamo anche che 36 (~2,5%) abitazioni non possiedono il seminterrato.

BsmtCond

Univar_Quality(
  HP,BsmtCond,
  label="Scores",
  title="Basement Conditions")
## Entries
##   Average      Good      Fair      Poor Excellent 
##      1311        65        45         2         0 
## Entries
##   Average      Good      Fair      Poor Excellent 
##     92.13      4.57      3.16      0.14      0.00

Notiamo che 1311 valutazioni “nella media” compongono il ~92% delle frequenze, con “buono” e “accettabile” appena a ~4.6% e ~3.2%. Nessun seminterrato è stato valutato “eccellente” e “povero” risulta trascurabile in quanto applicata solo a 2 elementi. Notiamo anche che 36 (~2,5%) abitazioni non possiedono il seminterrato.

BsmtExposure

Univar_Quality(
  HP,BsmtExposure,
  label="Exposure",
  title="Basement Exposure")
## Entries
##      No Average    Good Minimum 
##     953     221     134     114 
## Entries
##      No Average    Good Minimum 
##   67.02   15.54    9.42    8.02

Notiamo che nella maggior parte delle abitazioni con seminterrati essi non sono esposti affatto (frequenza di 953), mentre i restanti sono divisi in “mediamente esposti” con 221 e quasi equamente tra “esposizione buona” 134 e “esposizione minima” 114. Notiamo anche che 36 (~2,5%) abitazioni non possiedono il seminterrato.

BsmtFinType1

Univar_Quality(
  HP,BsmtFinType1,
  label="Ratings",
  title="Completion Basement Ratings")
## Entries
## Unf GLQ ALQ BLQ Rec LwQ 
## 430 418 220 148 133  74 
## Entries
##   Unf   GLQ   ALQ   BLQ   Rec   LwQ 
## 30.22 29.37 15.46 10.40  9.35  5.20

Analizzando i livelli di completamento notiamo che abbiamo delle distribuzioni simili tra i “non finiti” e quelli in “buone condizioni, entrambi attorno al ~30%. Non ci sono informazioni trascurabili.

BsmtFinType2

Univar_Quality(
  HP,BsmtFinType2,
  label="Ratings",
  title="Extra Completion Basement Ratings")
## Entries
##  Unf  Rec  LwQ  BLQ  ALQ  GLQ 
## 1256   54   46   33   19   14 
## Entries
##   Unf   Rec   LwQ   BLQ   ALQ   GLQ 
## 88.33  3.80  3.23  2.32  1.34  0.98

Notiamo che nel caso in cui i seminterrati sono composti da più camere, quelle non principali risultano nel nostro caso essere prevalentemente “non finite” con una frequenza di 1256.

Heating

Univar_Quality(
  HP,Heating,
  label="Types",
  title="Heating Plans")
## Entries
##  GasA  GasW  Grav  Wall  OthW Floor 
##  1428    18     7     4     2     1 
## Entries
##  GasA  GasW  Grav  Wall  OthW Floor 
## 97.81  1.23  0.48  0.27  0.14  0.07

Notiamo che il \98% circa della case analizzate hanno tutte il riscaldamento basato su fornaci ad aria calda. Delle restanti tipologie, quelle ad acqua calda sono le più prevalenti, anche se sono rappresentate tutte da basse frequenze.

HeatingQC

Univar_Quality(
  HP,HeatingQC,
  label="Ratings"
  ,title="Heating Quality")
## Entries
## Excellent   Average      Good      Fair      Poor 
##       741       428       241        49         1 
## Entries
## Excellent   Average      Good      Fair      Poor 
##     50.75     29.32     16.51      3.36      0.07

Notiamo che la maggior parte dei voti risulta positiva con frequenze 741 per “eccellente”, 428 per “nella media” e 241 per “buono”. Con frequenza 49, “accettabile” appare l’unico voto negativo degno di nota.

CentralAir

Univar_Quality(
  HP,CentralAir,
  label="Exists",
  title="Central Air Conditioning")
## Entries
##  Yes   No 
## 1365   95 
## Entries
##   Yes    No 
## 93.49  6.51

Notiamo che con frequenza 1365, la maggior parte delle abitazioni ha installato un sistema di condizionatori dell’aria centralizzato.

Electrical

Univar_Quality(
  HP,Electrical,
  label="Type",
  title="Electrical System")
## Entries
## SBrkr FuseA FuseF FuseP   Mix 
##  1334    94    27     3     1 
## Entries
## SBrkr FuseA FuseF FuseP   Mix 
## 91.43  6.44  1.85  0.21  0.07

Notiamo che la maggior parte dei sistemi elettrici installati (\91%) impiegano il salvavita, mentre il resto delle popolazioni significanti sono quelle del fusibile A e del fusibile F.

BsmtFullBath

visualization_discrete(
  na.omit(HP[,"BsmtFullBath"]),
  sum_info_h[14],
  "BsmtFullBath")
## [[1]]
## [[1]]$BsmtFullBath
## [[1]]$BsmtFullBath$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  0.0000  0.4253  1.0000  3.0000 
## 
## [[1]]$BsmtFullBath$Variance
## [1] 0.27
## 
## [[1]]$BsmtFullBath$Standard_Deviation
## [1] 0.52
## 
## [[1]]$BsmtFullBath$Moda
## [[1]]$BsmtFullBath$Moda$Mode
## [1] 0
## 
## [[1]]$BsmtFullBath$Moda$Frequency
## [1] 856
## 
## 
## 
## 
## [1] "freq: "
## 
## data
##   0   1   2   3 
## 856 588  15   1 
## 
## [1] "percintile: "
## 
## data
##           0           1           2           3 
## 58.63013699 40.27397260  1.02739726  0.06849315

Si osserva che la maggior parte dei semiterrati non hanno un bagno completo essendo il ~=58.6% con frequenza di 856 Si osserva che la minima freq dei numeri di bagno completi e 1 per 3 bangi e quindi si puo trascurare essendo <1% Si osserva che la freq dei numeri di bagni completi per 2 bagni e 15 che è ~= 1.03% e quindi anch’esso trascurabile Infine si osserva che la maggior parte dei semiterrati che hanno 1 bagno completo è ~=40.3% con frequenza di 588

BsmtHalfBath

visualization_discrete(
  na.omit(HP[,"BsmtHalfBath"]),
  sum_info_h[15],
  "BsmtHalfBath")
## [[1]]
## [[1]]$BsmtHalfBath
## [[1]]$BsmtHalfBath$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## 0.00000 0.00000 0.00000 0.05753 0.00000 2.00000 
## 
## [[1]]$BsmtHalfBath$Variance
## [1] 0.06
## 
## [[1]]$BsmtHalfBath$Standard_Deviation
## [1] 0.24
## 
## [[1]]$BsmtHalfBath$Moda
## [[1]]$BsmtHalfBath$Moda$Mode
## [1] 0
## 
## [[1]]$BsmtHalfBath$Moda$Frequency
## [1] 1378
## 
## 
## 
## 
## [1] "freq: "
## 
## data
##    0    1    2 
## 1378   80    2 
## 
## [1] "percintile: "
## 
## data
##          0          1          2 
## 94.3835616  5.4794521  0.1369863

Si osserva che la maggior parte dei semiterrati non hanno un bagno mezzo completo essendo il ~94% con frequenza di 1378 Si osserva che la freq dei numeri di bagni mezzi completi per 2 bagni e 2 che è ~= 1% e quindi anch’esso trascurabile Infine si osserva che la maggior parte dei semiterrati che hanno 1 bagno mezzo completo è ~5% con frequenza di 80

FullBath

visualization_discrete(
  na.omit(HP[,"FullBath"]),
  sum_info_h[16],"FullBath")
## [[1]]
## [[1]]$FullBath
## [[1]]$FullBath$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   1.000   2.000   1.565   2.000   3.000 
## 
## [[1]]$FullBath$Variance
## [1] 0.3
## 
## [[1]]$FullBath$Standard_Deviation
## [1] 0.55
## 
## [[1]]$FullBath$Moda
## [[1]]$FullBath$Moda$Mode
## [1] 2
## 
## [[1]]$FullBath$Moda$Frequency
## [1] 768
## 
## 
## 
## 
## [1] "freq: "
## 
## data
##   0   1   2   3 
##   9 650 768  33 
## 
## [1] "percintile: "
## 
## data
##          0          1          2          3 
##  0.6164384 44.5205479 52.6027397  2.2602740

Si osserva che la maggior parte degli edifici che sono sopra il seminterrato hanno 2 bagni completi essendo il ~=52.6% con frequenza di 768 Si osserva che la minima freq dei numeri di bagno completi e 9 per nessun bango e quindi si puo trascurare essendo <1% Si osserva che la freq dei numeri di bango completi per 3 bangi e 33 che è ~= 2.2% e quindi anch’esso trascurabile Infine si osserva che gli edifici che sono sopra il seminterrato che hanno 1 bagno completo sono il ~=44.5% con frequenza di 650

HalfBath

visualization_discrete(
  na.omit(HP[,"HalfBath"]),
  sum_info_h[17],
  "HalfBath")
## [[1]]
## [[1]]$HalfBath
## [[1]]$HalfBath$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.0000  0.0000  0.3829  1.0000  2.0000 
## 
## [[1]]$HalfBath$Variance
## [1] 0.25
## 
## [[1]]$HalfBath$Standard_Deviation
## [1] 0.5
## 
## [[1]]$HalfBath$Moda
## [[1]]$HalfBath$Moda$Mode
## [1] 0
## 
## [[1]]$HalfBath$Moda$Frequency
## [1] 913
## 
## 
## 
## 
## [1] "freq: "
## 
## data
##   0   1   2 
## 913 535  12 
## 
## [1] "percintile: "
## 
## data
##          0          1          2 
## 62.5342466 36.6438356  0.8219178

Si osserva che la maggior parte degli edifici che sono sopra il seminterrato hanno 0 bagni mezzo completi essendo il ~=62.5% con frequenza di 913 Si osserva che la minima freq dei numeri di bagno completi e 12 per 2 bango e quindi si puo trascurare essendo <1% Infine si osserva che gli edifici che sono sopra il seminterrato che hanno 1 bagno completo sono il ~=36.6% con frequenza di 535

BedroomAbvGr

visualization_discrete(
  na.omit(HP[,"BedroomAbvGr"]),
  sum_info_h[18],
  "BedroomAbvGr")
## [[1]]
## [[1]]$BedroomAbvGr
## [[1]]$BedroomAbvGr$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   2.000   3.000   2.866   3.000   8.000 
## 
## [[1]]$BedroomAbvGr$Variance
## [1] 0.67
## 
## [[1]]$BedroomAbvGr$Standard_Deviation
## [1] 0.82
## 
## [[1]]$BedroomAbvGr$Moda
## [[1]]$BedroomAbvGr$Moda$Mode
## [1] 3
## 
## [[1]]$BedroomAbvGr$Moda$Frequency
## [1] 804
## 
## 
## 
## 
## [1] "freq: "
## 
## data
##   0   1   2   3   4   5   6   8 
##   6  50 358 804 213  21   7   1 
## 
## [1] "percintile: "
## 
## data
##           0           1           2           3           4           5 
##  0.41095890  3.42465753 24.52054795 55.06849315 14.58904110  1.43835616 
##           6           8 
##  0.47945205  0.06849315

Si osserva che la maggior parte degli edifici che sono sopra il seminterrato hanno 3 camere essendo il ~=55.07% con frequenza di 804 seguito da 2, 4 e 1 camere essendo ~=24.5%, ~=14.6% e ~=3.4% con frequenze 358, 213 e 50 rispettivamente. Si osserva che la minima freq dei numeri di camere e 1 per 8 camere seguito da 5, 6 e 0 camere con frequenze 21, 7 e 6 rispettivamente e quindi si puo trascurare essendo tutti <1.5%

KitchenAbvGr

visualization_discrete(
  na.omit(HP[,"KitchenAbvGr"]),
  sum_info_h[19],
  "KitchenAbvGr")
## [[1]]
## [[1]]$KitchenAbvGr
## [[1]]$KitchenAbvGr$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   1.000   1.000   1.047   1.000   3.000 
## 
## [[1]]$KitchenAbvGr$Variance
## [1] 0.05
## 
## [[1]]$KitchenAbvGr$Standard_Deviation
## [1] 0.22
## 
## [[1]]$KitchenAbvGr$Moda
## [[1]]$KitchenAbvGr$Moda$Mode
## [1] 1
## 
## [[1]]$KitchenAbvGr$Moda$Frequency
## [1] 1392
## 
## 
## 
## 
## [1] "freq: "
## 
## data
##    0    1    2    3 
##    1 1392   65    2 
## 
## [1] "percintile: "
## 
## data
##           0           1           2           3 
##  0.06849315 95.34246575  4.45205479  0.13698630

Si osserva che la maggior parte degli edifici che sono sopra il seminterrato hanno 1 cucina essendo il ~=95.34% con frequenza di 1392 seguito da 2 cucine essendo ~=4.45% con frequenze 65. Si osserva che la minima freq dei numeri di camere e 1 per 0 cucine seguito da 3 cucine con frequenze 2 e quindi si puo trascurare essendo tutti <1%

TotRmsAbvGrd

visualization_discrete(
  na.omit(HP[,"TotRmsAbvGrd"]),
  sum_info_h[20],
  "TotRmsAbvGrd")
## [[1]]
## [[1]]$TotRmsAbvGrd
## [[1]]$TotRmsAbvGrd$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   2.000   5.000   6.000   6.518   7.000  14.000 
## 
## [[1]]$TotRmsAbvGrd$Variance
## [1] 2.64
## 
## [[1]]$TotRmsAbvGrd$Standard_Deviation
## [1] 1.63
## 
## [[1]]$TotRmsAbvGrd$Moda
## [[1]]$TotRmsAbvGrd$Moda$Mode
## [1] 6
## 
## [[1]]$TotRmsAbvGrd$Moda$Frequency
## [1] 402
## 
## 
## 
## 
## [1] "freq: "
## 
## data
##   2   3   4   5   6   7   8   9  10  11  12  14 
##   1  17  97 275 402 329 187  75  47  18  11   1 
## 
## [1] "percintile: "
## 
## data
##           2           3           4           5           6           7 
##  0.06849315  1.16438356  6.64383562 18.83561644 27.53424658 22.53424658 
##           8           9          10          11          12          14 
## 12.80821918  5.13698630  3.21917808  1.23287671  0.75342466  0.06849315

Si osserva che la maggior parte degli edifici che sono sopra il seminterrato sono nel intervallo fra 5 e 7 stanze (non considerando i bagni) essendo il ~=68.8% con il piu grande di occorenze 6 stanze (~=27.5%) con frequenza di 402. Si osserva che la minima freq dei numeri di stanze e 1 per 2 e 14 stanze seguito da 12, 3 e 11 stanze con frequenze 11, 17 e 18 rispettivamente e quindi si puo trascurare essendo tutti <1.5%

Functional

Univar_Quality(
  HP,Functional,
  label="Type",
  title="Home Functionality")
## Entries
##  Typ Min2 Min1  Mod Maj1 Maj2  Sev 
## 1360   34   31   15   14    5    1 
## Entries
##   Typ  Min2  Min1   Mod  Maj1  Maj2   Sev 
## 93.15  2.33  2.12  1.03  0.96  0.34  0.07

I dati sono fortemente sbilanciati verso una funzionalità tipica della casa, rappresentando il \93% delle frequenze. Le abitazioni danneggiate rappresentano una minoranza in questi dati, risultando trascurabili.

Fireplaces

Univar_Quality(
  HP,Fireplaces,
  label="Amount",
  title="Number of Fireplaces")
## Entries
##   0   1   2   3 
## 690 650 115   5 
## Entries
##     0     1     2     3 
## 47.26 44.52  7.88  0.34

Notiamo che nel ~47% degli immobili analizzati essi risultano senza stufe a legna. Di quelli che ne posseggono, osserviamo che il ~45% contiene una sola stufa, l’~8% due e meno dell’~1% tre.

FireplaceQu

Univar_Quality(
  HP,FireplaceQu,
  label="Rating",
  title="Fireplace Quality")
## Entries
##      Good   Average      Fair Excellent      Poor 
##       380       313        33        24        20 
## Entries
##      Good   Average      Fair Excellent      Poor 
##     49.35     40.65      4.29      3.12      2.60

Notiamo che tra le abitazioni dotate di camini, 380 (~49%) di esse lo hanno valutato come “buono”, 313 (~40%) come “nella media”. Gli “eccellenti” e i “poveri” risultano avere numeri paragonabili, con 24 (~3.1%) e 20 di frequenza.(~2.6%)

GarageType

Univar_Quality(
  HP,GarageType,
  label="Types",
  title="Garage Type")
## Entries
##  Attchd  Detchd BuiltIn Basment CarPort  2Types 
##     870     387      88      19       9       6 
## Entries
##  Attchd  Detchd BuiltIn Basment CarPort  2Types 
##   63.09   28.06    6.38    1.38    0.65    0.44

Notiamo che tra i tipi di garage associati alle varie abitazioni controllate risultano 870 (~63%) di essi attaccati alla stessa, 387 (~28%) staccati e 88 (~6%) costruiti dentro l’edificio. Osserviamo anche che le abitazioni con due garage di tipi diversi o l’entrata per la macchina risultano nel complessivo trascurabili.

GarageFinish

Univar_Quality(
  HP,GarageFinish,
  label="Status",
  title="Garage Finishing Status")
## Entries
##     Unfinished Rough finished       Finished 
##            605            422            352 
## Entries
##     Unfinished Rough finished       Finished 
##          43.87          30.60          25.53

Tra le case dotate di garage, osserviamo che 605 (~44%) di essi risulta non completato, mentre quelli finiti e quelli quasi completi sono 422 (~31%) e 352 (~26%). Quindi nel complessivo il numero di garage generalmente quasi completi è superiore a quello dei garage incompleti. Osserviamo anche che 81 immobili non hanno il garage.

GarageCars

visualization_discrete(
  na.omit(HP[,"GarageCars"]),
  sum_info_h[23],
  "GarageCars")
## [[1]]
## [[1]]$GarageCars
## [[1]]$GarageCars$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   1.000   2.000   1.767   2.000   4.000 
## 
## [[1]]$GarageCars$Variance
## [1] 0.56
## 
## [[1]]$GarageCars$Standard_Deviation
## [1] 0.75
## 
## [[1]]$GarageCars$Moda
## [[1]]$GarageCars$Moda$Mode
## [1] 2
## 
## [[1]]$GarageCars$Moda$Frequency
## [1] 824
## 
## 
## 
## 
## [1] "freq: "
## 
## data
##   0   1   2   3   4 
##  81 369 824 181   5 
## 
## [1] "percintile: "
## 
## data
##          0          1          2          3          4 
##  5.5479452 25.2739726 56.4383562 12.3972603  0.3424658

Si osserva che la maggior parte degli Garage possono avere 2 auto essendo il ~=56.44% con frequenza di 824 seguito da 1, 3 e 0 auto essendo ~=25.27% con frequenze 369, ~=12.4% con frequenze 181 e ~=5.55% con frequenze 81 rispettivamente. Notiamo che la minima freq dei numeri di auto e 5 per 4 auto e quindi si puo trascurare essendo <1%

GarageQual

Univar_Quality(HP,GarageQual, label="Rating",title="Garage Quality")
## Entries
##   Average      Fair      Good      Poor Excellent 
##      1311        48        14         3         3 
## Entries
##   Average      Fair      Good      Poor Excellent 
##     95.07      3.48      1.02      0.22      0.22

Notiamo che i dati sono principalmente concentrati su “nella media”, con una frequenza di 1311 (~95%). I voti “eccellente” e “povero” risultano applicati a una popolazione molto piccola dalla frequenza di 3 ognuno, quindi appaiono trascurabili.

GarageCond

Univar_Quality(
  HP,GarageCond,
  label="Rating",
  title="Garage Conditions")
## Entries
##   Average      Fair      Good      Poor Excellent 
##      1326        35         9         7         2 
## Entries
##   Average      Fair      Good      Poor Excellent 
##     96.16      2.54      0.65      0.51      0.15

Le distribuzioni riguardanti le condizioni sembrano rispecchiare quelli della qualità, questa volta con 1326 (~96%) di frequenza.

PavedDrive

Univar_Quality(
  HP,PavedDrive,
  label="Types",
  title="Driveway Type")
## Entries
##         Paved   Dirt/Graver Partial paved 
##          1340            90            30 
## Entries
##         Paved   Dirt/Graver Partial paved 
##         91.78          6.16          2.05

Notiamo che le frequenze riguardanti il tipo di viale si concentrano principalmente su “pavimentato” con frequenza del 1340 (~92%).

PoolQC

Univar_Quality(
  HP,PoolQC,
  label="Rating",
  title="Pool Quality")
## Entries
## Gd Ex Fa 
##  3  2  2 
## Entries
##    Gd    Ex    Fa 
## 42.86 28.57 28.57

Osserviamo che 1453 delle abitazioni considerate non posseggono la piscina, con i restanti 7 quasi equamente distribuiti sulle altre valutazioni. Per questo motivo il dato risulta quasi interamente trascurabile.

Fence

Univar_Quality(
  HP,Fence,
  label="Rating",
  title="Fence Rating")
## Entries
##   Minimum Privacy      Good Privacy         Good Wood Minimum Wood/Wire 
##               157                59                54                11 
## Entries
##   Minimum Privacy      Good Privacy         Good Wood Minimum Wood/Wire 
##             55.87             21.00             19.22              3.91

Notiamo che le case senza alcun recinto hanno una frequenza di 1179, quindi sono la maggioranza. Delle restanti 281, 157 hanno privacy minima (~55%), 59 hanno buona privacy (~21%) e 54 (~20%) hanno buon legno.

MiscFeature

Univar_Quality(
  HP,MiscFeature,
  label="Type",
  title="Miscellaneous Feature")
## Entries
##   No Feature         Shed   2nd Garage        Other Tennis Court     Elevator 
##         1406           49            2            2            1            0 
## Entries
##   No Feature         Shed   2nd Garage        Other Tennis Court     Elevator 
##        96.30         3.36         0.14         0.14         0.07         0.00

Notiamo che 1406 immobili risultano non avere alcun elemento aggiuntivo, mentre tra quelle che lo hanno, le uniche degne di nota sembrano essere quelle con un capanno, le quali compongono il 3% (frequenza 49) delle case complessive, mentre le altre risultano trascurabili.

MoSold

visualization_discrete(na.omit(HP[,"MoSold"]), sum_info_h[32],"MoSold")
## [[1]]
## [[1]]$MoSold
## [[1]]$MoSold$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   5.000   6.000   6.322   8.000  12.000 
## 
## [[1]]$MoSold$Variance
## [1] 7.31
## 
## [[1]]$MoSold$Standard_Deviation
## [1] 2.7
## 
## [[1]]$MoSold$Moda
## [[1]]$MoSold$Moda$Mode
## [1] 6
## 
## [[1]]$MoSold$Moda$Frequency
## [1] 253
## 
## 
## 
## 
## [1] "freq: "
## 
## data
##   1   2   3   4   5   6   7   8   9  10  11  12 
##  58  52 106 141 204 253 234 122  63  89  79  59 
## 
## [1] "percintile: "
## 
## data
##         1         2         3         4         5         6         7         8 
##  3.972603  3.561644  7.260274  9.657534 13.972603 17.328767 16.027397  8.356164 
##         9        10        11        12 
##  4.315068  6.095890  5.410959  4.041096

Possiamo notare che i mesi con le moggior vendute sono fra il 5 e 8 mese con8 ~=55.69% Dal 1 si ha una crescita di vendute fino al 6 mese dove si il massimo di vendite con 253 vendite dopodicche la vendita decresce

YrSold

visualization_discrete(
  na.omit(HP[,"YrSold"]),
  sum_info_h[33],
  "YrSold")
## [[1]]
## [[1]]$YrSold
## [[1]]$YrSold$Summary
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    2006    2007    2008    2008    2009    2010 
## 
## [[1]]$YrSold$Variance
## [1] 1.76
## 
## [[1]]$YrSold$Standard_Deviation
## [1] 1.33
## 
## [[1]]$YrSold$Moda
## [[1]]$YrSold$Moda$Mode
## [1] 2009
## 
## [[1]]$YrSold$Moda$Frequency
## [1] 338
## 
## 
## 
## 
## [1] "freq: "
## 
## data
## 2006 2007 2008 2009 2010 
##  314  329  304  338  175 
## 
## [1] "percintile: "
## 
## data
##     2006     2007     2008     2009     2010 
## 21.50685 22.53425 20.82192 23.15068 11.98630

Si puo notare che la vendita per anno dal 2006 a 2009 e per lo piu uniforme con l’anno di maggior vendita nel 2009 con 338 venidite Nel 2010 invece si ha il minimo di vendite con 175 vendite

SaleType

Univar_Quality(
  HP,SaleType,
  label="Type",
  title="Sale Type")
## Entries
##   Warranty Deed - Conventional Home just constructed and sold 
##                           1267                            122 
##                  Court Officer              Contract Low Down 
##                             43                              9 
##      Contract Low Down Payment          Contract Low Interest 
##                              5                              5 
##           Warranty Deed - Cash                          Other 
##                              4                              3 
##      Contract 15% Down payment        Warranty Deed - VA Loan 
##                              2                              0 
## Entries
##   Warranty Deed - Conventional Home just constructed and sold 
##                          86.78                           8.36 
##                  Court Officer              Contract Low Down 
##                           2.95                           0.62 
##      Contract Low Down Payment          Contract Low Interest 
##                           0.34                           0.34 
##           Warranty Deed - Cash                          Other 
##                           0.27                           0.21 
##      Contract 15% Down payment        Warranty Deed - VA Loan 
##                           0.14                           0.00

Osserviamo che le distribuzioni di questa tabella sono sbilanciate verso “certificato di garanzia”, avendo frequenza di 1267 (~87%). Tra le altre tipologie di pagamento noto “casa appena costruita e venduta” e “tramite ufficiale del tribunale”, che rappresentano l’ ~8% e il ~3% delle frequenze. Le restanti categorie risultano trascurabili.

SaleCondition

Univar_Quality(
  HP,SaleCondition,
  label="Type",
  title="Sale Condition")
## Entries
##                 Normal Sale          Home not completed 
##                        1198                         125 
##               Abnormal Sale Sale between family members 
##                         101                          20 
##                  Allocation     Adjoining Land Purchase 
##                          12                           4 
## Entries
##                 Normal Sale          Home not completed 
##                       82.05                        8.56 
##               Abnormal Sale Sale between family members 
##                        6.92                        1.37 
##                  Allocation     Adjoining Land Purchase 
##                        0.82                        0.27

Osserviamo che la maggior parte degli acquisti si è svolta in maniera normale, data la frequenza di 1198 (~86.78%), mentre il resto si è prevalentemente eseguito ad abitazione non completata (~9%), in maniera anomala (~7%) o in alcuni casi tra parenti (~1%). Le restanti modalità si presentano meno dell’~1% delle volte

Credit Card univariata qualitativa

Attrition_Flag

Univar_Quality(credit_card,Attrition_Flag,
               label="Types",
               title="Attrition flag")
## Entries
## Existing Customer Attrited Customer 
##              8500              1627 
## Entries
## Existing Customer Attrited Customer 
##             83.93             16.07

Osserviamo che dei 10127 clienti, 8500 di essi (~84%) sono utenti esistenti e attivi, mentre i restanti 1627 (~16%) risultano essere utenti inattivi o dal conto bloccato.

Gender

Univar_Quality(
  credit_card,Gender,
  label="",
  title="Gender")
## Entries
##    F    M 
## 5358 4769 
## Entries
##     F     M 
## 52.91 47.09

Notiamo che la distribuzione dei sessi dei clienti risulta quasi bilanciata, con un lieve prevalere di quello femminile, dalla frequenza di 5358 (~52%), su quello maschile, di frequenza 4769 (~47%).

Dependent_count

Univar_Quality(
  credit_card,Dependent_count,
  label="Amount",
  title="Dependent Count")
## Entries
##    3    2    1    4    0    5 
## 2732 2655 1838 1574  904  424 
## Entries
##     3     2     1     4     0     5 
## 26.98 26.22 18.15 15.54  8.93  4.19

Si può osservare che la maggior parte delle persone hanno tra 1 e 3 dipendenti coprendo il ~=71.35%, con la maggior parte avendo 3 dipendenti a 2732 occorrenze (~=26.98%)

Education_Level

Univar_Quality(
  credit_card,Education_Level,
  label="Education",
  title="Education Level")
## Entries
##      Graduate   High School       Unknown    Uneducated       College 
##          3128          2013          1519          1487          1013 
## Post-Graduate     Doctorate 
##           516           451 
## Entries
##      Graduate   High School       Unknown    Uneducated       College 
##         30.89         19.88         15.00         14.68         10.00 
## Post-Graduate     Doctorate 
##          5.10          4.45

Notiamo che tra i membri di questa banca risultano esserci una prevalenza di laureati, avendo frequenza 3128, ovvero il ~=31% dei clienti complessivi, seguito da quelli che hanno superato gli studi in una scuola superiore (2013) che sono il ~=20%. Osserviamo che le frequenze di “sconosciuto” e “senza studi” sono paragonabili , avendo entrambi quasi il ~=15% ognuno del complessivo. Sono vicini anche il numero di “post-laureati” e “Dottorandi”, attorno al 5% delle frequenze totali ognuno.

Marital_Status

Univar_Quality(
  credit_card,Marital_Status,
  label="Status",
  title="Marital Status")
## Entries
##  Married   Single  Unknown Divorced 
##     4687     3943      749      748 
## Entries
##  Married   Single  Unknown Divorced 
##    46.28    38.94     7.40     7.39

La distribuzione di questa variabile è relativamente bilanciata tra “Single” (single+divorziati) e “Sposati” con ~=46% ognuno, quindi accorperei single e divorziati in un unico livello per un miglior bilanciamento. Inoltre abbiamo 749 utenti dei quali non conosciamo lo status, quindi probabilmente non risulteranno utili in un modello predittivo.

Income_Category

Univar_Quality(
  credit_card,Income_Category,
  label="Income",
  title="Income Category")
## Entries
## Less than $40K    $40K - $60K   $80K - $120K    $60K - $80K        Unknown 
##           3561           1790           1535           1402           1112 
##        $120K + 
##            727 
## Entries
## Less than $40K    $40K - $60K   $80K - $120K    $60K - $80K        Unknown 
##          35.16          17.68          15.16          13.84          10.98 
##        $120K + 
##           7.18

Osservo che il ~=52% degli utenti complessivi appartiene alle fasce inferiori ai $60K, con un maggior numero di utenti sotto i $40K (3561) rispetto a quelli tra $40k e $60k. Tra i restanti, 1112 di essi non sappiamo in che categoria ricadano, quindi è probabilmente un dato trascurabile o da chiarificare; e gli utenti con più di $60K rappresentano il ~=36% degli iscritti complessivi.

Card_Category

Univar_Quality(
  credit_card,Card_Category,
  label="Category",
  title="Card Categories")
## Entries
##     Blue   Silver     Gold Platinum 
##     9436      555      116       20 
## Entries
##     Blue   Silver     Gold Platinum 
##    93.18     5.48     1.15     0.20

Il ~=93% degli utenti possiede una carta di tipo “Blue”, seguiti dagli utenti “Silver” (~=5%) e “Gold” (~=1%). Gli utenti di categoria “Platinum” rappresentano meno dell’ ~=1%, con una frequenza di 20.

detach(HP)
detach(credit_card)

House Price - Bivariata

Lettura dati

HP <- read.csv2(
    "./house_price.csv", 
    sep = ",", 
    stringsAsFactors = T)

Pulizia dei dati

HP$MSSubClass <- factor(
    HP$MSSubClass,
    levels = c(20, 30, 40, 45, 50, 60, 70, 75, 80, 85, 90, 120, 150, 160, 180, 190),
    labels = c("1-STORY 1946 & NEWER ALL STYLES", "1-STORY 1945 & OLDER", "1-STORY W/FINISHED ATTIC ALL AGES", "1-1/2 STORY - UNFINISHED ALL AGES", "1-1/2 STORY FINISHED ALL AGES", "2-STORY 1946 & NEWER", "2-STORY 1945 & OLDER", "2-1/2 STORY ALL AGES", "SPLIT OR MULTI-LEVEL", "SPLIT FOYER", "DUPLEX - ALL STYLES AND AGES", "1-STORY PUD - 1946 & NEWER", "1-1/2 STORY PUD - ALL AGES", "2-STORY PUD - 1946 & NEWER", "PUD - MULTILEVEL - INCL SPLIT LEV/FOYER", "2 FAMILY CONVERSION - ALL STYLES AND AGES"))

HP$MSZoning <- factor(
    HP$MSZoning,
    levels = c("RL", "RM", "RH", "FV", "C (all)"),
    labels = c("Residential Low Density", "Residential Medium Density", "Residential High Density", "Floating Village Residential", "Commercial"))

HP$LotShape <- factor(
    HP$LotShape,
    levels = c("Reg", "IR1", "IR2", "IR3"),
    labels = c("Regular", "Slightly irregular", "Moderately irregular", "Irregular"))

HP$LandContour <- factor(
    HP$LandContour,
    levels = c("Lvl", "Bnk", "HLS", "Low"),
    labels = c("Near Flat/Level", "Banked", "Hillside", "Depression"))

HP$Neighborhood <- factor(
    HP$Neighborhood,
    levels = c("Blmngtn", "Blueste", "BrDale", "BrkSide", "ClearCr", "CollgCr", "Crawfor", "Edwards", "Gilbert", "IDOTRR", "MeadowV", "Mitchel", "Names", "NoRidge", "NPkVill", "NridgHt", "NWAmes", "OldTown", "SWISU", "Sawyer", "SawyerW", "Somerst", "StoneBr", "Timber", "Veenker"),
    labels = c("Bloomington Heights", "Bluestem", "Briardale", "Brookside", "Clear Creek", "College Creek", "Crawford", "Edwards", "Gilbert", "Iowa DOT and Rail Road", "Meadow Village", "Mitchell", "North Ames", "Northridge", "Northpark Villa", "Northridge Heights", "Northwest Ames", "Old Town", "South & West of Iowa State University", "Sawyer", "Sawyer West", "Somerset", "Stone Brook", "Timberland", "Veenker"))

HP$BldgType <- factor(
    HP$BldgType,
    levels = c("1Fam", "2fmCon", "Duplex", "TwnhsE", "Twnhs"),
    labels = c("Single-family Detached", "Two-family Conversion", "Duplex", "Townhouse End Unit", "Townhouse Inside Unit"))

HP$MasVnrArea[HP$MasVnrArea == 0 | is.na(HP$MasVnrType)] <- NA

for (f in c("ExterQual", "ExterCond", "BsmtQual", "BsmtCond", "HeatingQC", "KitchenQual", "FireplaceQu", "GarageQual", "GarageCond")) {
    HP[, f] <- factor(
        HP[, f],
        levels = c("Po", "Fa", "TA", "Gd", "Ex"),
        labels = c("Poor", "Fair", "Average", "Good", "Excellent"))
}

levels(HP$CentralAir) <- c("No", "Yes")

HP$BsmtExposure <- factor(
    HP$BsmtExposure,
    levels = c("No", "Mn", "Av", "Gd"),
    labels = c("No", "Minimu", "Average", "Good"))

HP$GarageFinish <- factor(
    HP$GarageFinish,
    levels = c("Unf", "RFn", "Fin"),
    labels = c("Unfinished", "Rough finished", "Finished"))

HP$PavedDrive <- factor(
    HP$PavedDrive,
    levels = c("N", "P", "Y"),
    labels = c("Dirt/Graver", "Partial paved", "Paved"))

HP$Fence <- factor(
    HP$Fence,
    levels = c("MnWw", "GdWo", "MnPrv", "GdPrv"),
    labels = c("Minimum Wood/Wire", "Good Wood", "Minimum Privacy", "Good Privacy"))

HP$SaleType <- factor(
    HP$SaleType,
    levels = c("WD", "CWD", "VWD", "New", "COD", "Con", "ConLw", "ConLI", "ConLD", "Oth"),
    labels = c("Warranty Deed - Conventional", "Warranty Deed - Cash", "Warranty Deed - VA Loan", "Home just constructed and sold", "Court Officer", "Contract 15% Down payment", "Contract Low Down Payment", "Contract Low Interest", "Contract Low Down", "Other"))

HP$SaleCondition <- factor(
    HP$SaleCondition,
    levels = c("Normal", "Abnorml", "AdjLand", "Alloca", "Family", "Partial"),
    labels = c("Normal Sale", "Abnormal Sale", "Adjoining Land Purchase", "Allocation", "Sale between family members", "Home not completed"))

attach(HP)

Funzioni di analisi

Seconda variabile qualitativa:

analysis.qualitative <- function(data, horizontal = F, lab = NULL, title = NULL) {
    if (missing(data) | !is.factor(data)) {
        stop("Missing data or data is not a factor.")
    }
    if (!is.logical(horizontal)) {
        stop("Horizontal must be boolean")
    }
    
    df <- subset(data.frame(SalePrice, data), !is.na(data))
    
    test <- aov(SalePrice ~ data)
    p <- summary(test)[[1]][["Pr(>F)"]][1]
    
    plt <- ggplot(
        df,
        aes(
            x = if (horizontal) SalePrice else data, 
            y = if (horizontal) data else SalePrice)) +
    geom_violin(
        trim = F, 
        draw_quantiles = c(0.25, 0.5, 0.75)) +
    stat_summary(
        fun = "mean",
        geom = "point",
        color = "red",
        fill = "red",
        shape = 20,
        size = 2) +
    labs(
        title = if (is.null(title)) NULL else paste("Price by", title, sep = " "),
        subtitle = paste("Anova p-value = ", signif(p, 3), sep = ""),
        x = if (horizontal) "price" else lab,
        y = if (horizontal) lab else "price")
    
    plot(plt)
}

Seconda variabile quantitativa:

analysis.quantitative <- function(data, horizontal = F, lab = NULL, title = NULL) {
    if (missing(data)) {
        stop("Missing data.")
    }
    if (!is.logical(horizontal)) {
        stop("Horizontal must be boolean")
    }
    
    sp <- log(SalePrice)
    dt <- log(data)
    
    mod <- lm(sp ~ dt)
    p <- summary(mod)$coefficients[2,4]
    
    plt <- ggplot(
        data.frame(sp, dt),
        aes(
            x = if (horizontal) sp else dt, 
            y = if (horizontal) dt else sp)) +
    geom_point(size = 1) +
    geom_abline(
        intercept = coef(mod)[1], 
        slope = coef(mod)[2],
        color = "red") +
    labs(
        title = if (is.null(title)) NULL else paste("Price by", title, sep = " "),
        subtitle = paste("Linear model p-value = ", signif(p, 3), sep = ""),
        x = if (horizontal) "log price" else paste("log", lab, sep = " "),
        y = if (horizontal) paste("log", lab, sep = " ") else "log price")
    
    plot(plt)
}

Analisi

MSSubClass

analysis.qualitative(
    MSSubClass,
    horizontal = T,
    lab = "type",
    title = "type of dwelling")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di ^{-79} non c’è supporto a questa ipotesi. Quindi c’è una correlazione tra il prezzo di vendità e il tipo della casa.

Zoning

analysis.qualitative(
    MSZoning,
    horizontal = T,
    lab = "zoning",
    title = "zoning classification")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-79} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il tipo della casa.

LotFrontage

analysis.quantitative(
    LotFrontage,
    lab = "area",
    title = "frontage area")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ ^{-39} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la distanza dalla strada, che è approssiabile da un modello lineare con pendenza positiva.

LotFrontage.exists <- factor(
    !is.na(LotFrontage), 
    levels = c(F, T), 
    labels = c("No", "Yes"))

analysis.qualitative(
    LotFrontage.exists,
    lab = "frontage exists",
    title = "frontage exists")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ $ c’è supporto all’ipotesi nulla. Quindi non c’è una correlazione tra il prezzo di vendità e l’esistenza di spazio tra casa e strada.

LotArea

analysis.quantitative(
    LotArea,
    lab = "log area",
    title = "lot area")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ ^{-59} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la dimensione del lotto, che è approssiabile da un modello lineare con pendenza positiva.

Street

Questa variabile non viene messa in correlazione perché i dati sono troppo sbilanciati. Infatti la maggiorparte dei dati sta in una sola categoria.

## Street
##  Pave  Grvl 
## 99.59  0.41

Alley

Alley.exists <- factor(
    !is.na(Alley), 
    levels = c(F, T), 
    labels = c("No", "Yes"))

analysis.qualitative(
    Alley.exists,
    lab = "alley exists",
    title = "alley exists")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-6} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’esistenza del vialetto.

LotShape

analysis.qualitative(
    LotShape,
    lab = "shape",
    title = "lot shape")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-25} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la forma del lotto.

LotShape.cut <- factor(
    LotShape == "Regular", 
    levels = c(T, F), 
    labels = c("Regular", "Irregular"))

analysis.qualitative(
    LotShape.cut,
    lab = "shape",
    title = "lot shape")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-25} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la forma regolare o irregolare del lotto.

LandContour

analysis.qualitative(
    LandContour,
    lab = "contour",
    title = "land contour")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-8} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la zona in cui è situata l’abitazione.

Utilities

Questa variabile non viene messa in correlazione perché i dati sono troppo sbilanciati. Infatti la maggiorparte dei dati sta in una sola categoria.

## Utilities
## AllPub NoSeWa 
##  99.93   0.07

LotConfig

analysis.qualitative(
    LotConfig,
    lab = "configuration",
    title = "lot configuration")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-6} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la configurazione del lotto.

LandSlope

Questa variabile non viene messa in correlazione perché i dati sono troppo sbilanciati. Infatti la maggiorparte dei dati sta in una sola categoria.

## LandSlope
##   Gtl   Mod   Sev 
## 94.66  4.45  0.89

Neighborhood

analysis.qualitative(
    Neighborhood,
    horizontal = T,
    lab = "neighborhood",
    title = "neighborhood")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-187} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il vicinato della casa.

Condition1

Questa variabile non viene messa in correlazione perché i dati sono troppo sbilanciati. Infatti la maggiorparte dei dati sta in una sola categoria.

## Condition1
##   Norm  Feedr Artery   RRAn   PosN   RRAe   PosA   RRNn   RRNe 
##  86.30   5.55   3.29   1.78   1.30   0.75   0.55   0.34   0.14

Condition2

Questa variabile non viene messa in correlazione perché i dati sono troppo sbilanciati. Infatti la maggiorparte dei dati sta in una sola categoria.

## Condition2
##   Norm  Feedr Artery   PosN   RRNn   PosA   RRAe   RRAn 
##  98.97   0.41   0.14   0.14   0.14   0.07   0.07   0.07

BldgType

analysis.qualitative(
    BldgType,
    horizontal = T,
    lab = "type",
    title = "bilding type")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-10} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il tipo di abitazione.

HouseStyle

analysis.qualitative(
    HouseStyle,
    lab = "style",
    title = "house style")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-25} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e lo stile della casa.

OverallQual

OverallQual.fact <- factor(
    OverallQual,
    levels = 1:10)

analysis.qualitative(
    OverallQual.fact,
    lab = "quality",
    title = "overall quality")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la qualità dei materiali.

OverallCond

OverallCond.fact <- factor(
    OverallCond,
    levels = 1:10)

analysis.qualitative(
    OverallCond.fact,
    lab = "condition",
    title = "overall condition")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-38} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e le condizioni attuali dei materiali.

YearBuilt

analysis.quantitative(
    YearBuilt,
    lab = "year",
    title = "year build")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ ^{-134} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’anno di costruzione, che è approssiabile da un modello lineare con pendenza positiva.

YearRemodAdd

analysis.quantitative(
    YearRemodAdd,
    lab = "year",
    title = "remodel year")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ ^{-124} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’anno di ristrutturazione, che è approssiabile da un modello lineare con pendenza positiva. ### RoofStyle

analysis.qualitative(
    RoofStyle,
    lab = "style",
    title = "roof style")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-17} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e lo stile del tetto.

RoofMatl

Questa variabile non viene messa in correlazione perché i dati sono troppo sbilanciati. Infatti la maggiorparte dei dati sta in una sola categoria.

## RoofMatl
## CompShg Tar&Grv WdShngl WdShake ClyTile Membran   Metal    Roll 
##   98.22    0.75    0.41    0.34    0.07    0.07    0.07    0.07

Exterior1st

analysis.qualitative(
    Exterior1st,
    horizontal = T,
    lab = "covering",
    title = "exteriori covering 1")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-43} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il rivestimento esterno.

Exterior2nd

analysis.qualitative(
    Exterior2nd,
    horizontal = T,
    lab = "covering",
    title = "exteriori covering 2")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-43} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il rivestimento esterno.

MasVnrType

MasVnrType.exists <- factor(
    MasVnrType != "None",
    levels = c(F, T), 
    labels = c("No", "Yes"))

analysis.qualitative(
    MasVnrType.exists,
    lab = "exists",
    title = "masonry veneer")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-49} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la presenza dell’impiallacciatura in muratura.

MasVnrArea

analysis.quantitative(
    MasVnrArea,
    lab = "area",
    title = "masonry veneer")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ ^{-15} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’area di impiallacciatura in muratura, che è approssiabile da un modello lineare con pendenza positiva.

ExterQual

analysis.qualitative(
    ExterQual,
    lab = "quality",
    title = "external quality")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-204} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la qualità degli esterni.

ExterCond

analysis.qualitative(
    ExterCond,
    lab = "condition",
    title = "external condition")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-7} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e le attuali condizioni degli esterni.

Foundation

analysis.qualitative(
    Foundation,
    lab = "type",
    title = "foundation")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-91} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il tipo di fondamenta.

BsmtQual

analysis.qualitative(
    BsmtQual,
    lab = "quality",
    title = "basement quality")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-186} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la qualità del seminterrato.

BsmtCond

analysis.qualitative(
    BsmtCond,
    lab = "condition",
    title = "basement condition")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-9} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e le condizioni attuali del meninterrato.

BsmtExposure

analysis.qualitative(
    BsmtExposure,
    lab = "exposure",
    title = "basement exposure")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-6} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’esposizione del seminterrato.

BsmtFinType1

analysis.qualitative(
    BsmtFinType1,
    lab = "class",
    title = "rating of basement finisched area 1")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-63} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’area finita di seminterrato.

BsmtFinSF1

BsmtFinSF1.positive <- BsmtFinSF1
BsmtFinSF1.positive[BsmtFinSF1 == 0] <- NA

analysis.quantitative(
    BsmtFinSF1.positive,
    lab = "area",
    title = "basement type 1 square area")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ ^{-17} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’area del seminterrato, che è approssiabile da un modello lineare con pendenza positiva.

BsmtFinType2

analysis.qualitative(
    BsmtFinType2,
    lab = "class",
    title = "rating of basement finisched area 2")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ $ c’è un debole supporto all’ipotesi nulla. Quindi c’è una debole correlazione tra il prezzo di vendità e la seconda area finita del seminterrato.

BsmtFinSF2

BsmtFinSF2.positive <- BsmtFinSF2
BsmtFinSF2.positive[BsmtFinSF2 == 0] <- NA

analysis.quantitative(
    BsmtFinSF2.positive,
    lab = "area",
    title = "basement type 2 square area")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ $ c’è supporto all’ipotesi nulla. Quindi non c’è una correlazione tra il prezzo di vendità e l’area del secondo seminterrato. Questo probabilmente è dovuto alla scaristà nel numero dei dati.

BsmtUnfSF

BsmtUnfSF.positive <- BsmtUnfSF
BsmtUnfSF.positive[BsmtUnfSF == 0] <- NA

analysis.quantitative(
    BsmtUnfSF.positive,
    lab = "area",
    title = "unfinisched area of basement")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ $ c’è un debole supporto all’ipotesi nulla. Quindi c’è una correlazione abbastanza forte tra il prezzo di vendità e l’area non finita di seminterrato, che è approssiabile da un modello lineare con pendenza positiva.

TotalBsmtSF

TotalBsmtSF.positive <- TotalBsmtSF
TotalBsmtSF.positive[TotalBsmtSF == 0] <- NA

analysis.quantitative(
    TotalBsmtSF.positive,
    lab = "area",
    title = "total basement area")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ ^{-142} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’area del seminterrato, che è approssiabile da un modello lineare con pendenza positiva.

Heating

Questa variabile non viene messa in correlazione perché i dati sono troppo sbilanciati. Infatti la maggiorparte dei dati sta in una sola categoria.

## Heating
##  GasA  GasW  Grav  Wall  OthW Floor 
## 97.81  1.23  0.48  0.27  0.14  0.07

HeatingQC

analysis.qualitative(
    HeatingQC,
    lab = "quality",
    title = "heating quality")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-67} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la qualità del riscaldamento.

CentralAir

analysis.qualitative(
    CentralAir,
    lab = "exists",
    title = "central air")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-22} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’esistenza dell’aria condizionata centralizzata.

Electrical

analysis.qualitative(
    Electrical,
    lab = "type",
    title = "electrical")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-18} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il tipo di impianto elettrico.

X1stFlrSF

analysis.quantitative(
    X1stFlrSF,
    lab = "area",
    title = "first floor area")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ ^{-149} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’area calpestabile del piano terra, che è approssiabile da un modello lineare con pendenza positiva.

X2ndFlrSF

X2ndFlrSF.positive <- X2ndFlrSF
X2ndFlrSF.positive[X2ndFlrSF == 0] <- NA

analysis.quantitative(
    X2ndFlrSF.positive,
    lab = "area",
    title = "second floor area")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ ^{-76} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’area calpestabile del secondo piano, che è approssiabile da un modello lineare con pendenza positiva.

LowQualFinSF

Questa variabile non viene messa in correlazione perché i dati sono troppo sbilanciati. Infatti la maggiorparte dei dati sta in una sola categoria.

## LowQualFinSF
##     0    80   360    53   120   144   156   205   232   234   371   384   390 
## 98.22  0.21  0.14  0.07  0.07  0.07  0.07  0.07  0.07  0.07  0.07  0.07  0.07 
##   392   397   420   473   479   481   513   514   515   528   572 
##  0.07  0.07  0.07  0.07  0.07  0.07  0.07  0.07  0.07  0.07  0.07

GrLivArea

analysis.quantitative(
    GrLivArea,
    lab = "area",
    title = "ground living area")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ ^{-243} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’area calpestabile sopra il piano strada, che è approssiabile da un modello lineare con pendenza positiva.

BsmtFullBath

BsmtFullBath.fact <- factor(
    BsmtFullBath,
    levels = 0:max(BsmtFullBath))

analysis.qualitative(
    BsmtFullBath.fact,
    lab = "number",
    title = "basement full bath")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-17} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il numero di bagni completi.

BsmtHalfBath

Questa variabile non viene messa in correlazione perché i dati sono troppo sbilanciati. Infatti la maggiorparte dei dati sta in una sola categoria.

## BsmtHalfBath
##     0     1     2 
## 94.38  5.48  0.14

FullBath

FullBath.fact <- factor(
    FullBath,
    levels = 0:max(FullBath))

analysis.qualitative(
    FullBath.fact,
    lab = "number",
    title = "full bath")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-129} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il numero di bagni completi.

HalfBath

HalfBath.fact <- factor(
    HalfBath,
    levels = 0:max(HalfBath))

analysis.qualitative(
    HalfBath.fact,
    lab = "number",
    title = "half bath")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-31} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il numero di bagni di servizio.

BedroomAbvGr

BedroomAbvGr.fact <- factor(
    BedroomAbvGr,
    levels = 0:max(BedroomAbvGr))

analysis.qualitative(
    BedroomAbvGr.fact,
    lab = "number",
    title = "bedroom")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-16} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il numero di camere da letto.

KitchenAbvGr

Questa variabile non viene messa in correlazione perché i dati sono troppo sbilanciati. Infatti la maggiorparte dei dati sta in una sola categoria.

## KitchenAbvGr
##     1     2     3     0 
## 95.34  4.45  0.14  0.07

KitchenQual

analysis.qualitative(
    KitchenQual,
    lab = "quality",
    title = "kitchen quality")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-192} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la qualità della cucina.

TotRmsAbvGrd

TotRmsAbvGrd.fact <- factor(
    TotRmsAbvGrd,
    levels = 0:max(TotRmsAbvGrd))

analysis.qualitative(
    TotRmsAbvGrd.fact,
    lab = "number",
    title = "rooms number above ground")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-103} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il numero di stanze sopra il livello del terreno.

Functional

Questa variabile non viene messa in correlazione perché i dati sono troppo sbilanciati. Infatti la maggiorparte dei dati sta in una sola categoria.

## Functional
##   Typ  Min2  Min1   Mod  Maj1  Maj2   Sev 
## 93.15  2.33  2.12  1.03  0.96  0.34  0.07

Fireplaces

Fireplaces.fact <- factor(
    Fireplaces,
    levels = 0:max(Fireplaces))

analysis.qualitative(
    Fireplaces.fact,
    lab = "number",
    title = "fireplaces number")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-83} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il numero di caminetti.

FireplaceQu

analysis.qualitative(
    FireplaceQu,
    lab = "quality",
    title = "fireplace quality")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-19} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la qualità dei caminetti.

GarageType

analysis.qualitative(
    GarageType,
    lab = "type",
    title = "garage type")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-66} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il tipo di garage.

Garage.exists <- factor(
    !is.na(GarageType),
    levels = c(F, T), 
    labels = c("No", "Yes"))

analysis.qualitative(
    Garage.exists,
    lab = "exists",
    title = "garage exists")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-20} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’esistenza del garage.

GarageYrBlt

analysis.quantitative(
    GarageYrBlt,
    lab = "year",
    title = "garage year build")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ ^{-105} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’anno di costruzione del garage, che è approssiabile da un modello lineare con pendenza positiva.

GarageFinish

analysis.qualitative(
    GarageFinish,
    lab = "status",
    title = "garage finished")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-93} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e lo stato di costruzione del garage.

GarageCars

GarageCars.fact <- factor(
    GarageCars,
    levels = 0:max(GarageCars))

analysis.qualitative(
    GarageCars.fact,
    lab = "number",
    title = "garage size by cars number")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-6} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la dimensione del garage misurata in numero di auto contenute.

GarageArea

GarageArea.positive <- GarageArea
GarageArea.positive[GarageArea == 0] <- NA

analysis.quantitative(
    GarageArea.positive,
    lab = "square feets",
    title = "garage area")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ ^{-141} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’area del garage, che è approssiabile da un modello lineare con pendenza positiva.

GarageQual

analysis.qualitative(
    GarageQual,
    lab = "quality",
    title = "garage quality")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-7} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la qualità del garage.

GarageCond

analysis.qualitative(
    GarageCond,
    lab = "condition",
    title = "garage condition")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-7} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e le condizioni del garage.

PavedDrive

analysis.qualitative(
    PavedDrive,
    lab = "paved",
    title = "paved driveway")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-18} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la pavimentazione del vialetto.

WoodDeckSF

WoodDeckSF.positive <- WoodDeckSF
WoodDeckSF.positive[WoodDeckSF == 0] <- NA

analysis.quantitative(
    WoodDeckSF.positive,
    lab = "square feets",
    title = "wood deck")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ ^{-12} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e la dimensione del portico in legno, che è approssiabile da un modello lineare con pendenza positiva.

OpenPorchSF

OpenPorchSF.positive <- OpenPorchSF
OpenPorchSF.positive[OpenPorchSF == 0] <- NA

analysis.quantitative(
    OpenPorchSF.positive,
    lab = "square feets",
    title = "open porch area")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ ^{-5} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’area del porticato, che è approssiabile da un modello lineare con pendenza positiva.

EnclosedPorch

EnclosedPorch.positive <- EnclosedPorch
EnclosedPorch.positive[EnclosedPorch == 0] <- NA

analysis.quantitative(
    EnclosedPorch.positive,
    lab = "square feets",
    title = "encloses porch area")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ $ c’è un debole supporto all’ipotesi nulla. Quindi non c’è una forte correlazione tra il prezzo di vendità e l’area chiusa del portico.

X3SsnPorch

X3SsnPorch.positive <- X3SsnPorch
X3SsnPorch.positive[X3SsnPorch == 0] <- NA

analysis.quantitative(
    X3SsnPorch.positive,
    lab = "square feets",
    title = "three season porch area")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ $ c’è supporto all’ipotesi nulla. Quindi non c’è una correlazione tra il prezzo di vendità e l’area del portico tre stagioni.

ScreenPorch

ScreenPorch.positive <- ScreenPorch
ScreenPorch.positive[ScreenPorch == 0] <- NA

analysis.quantitative(
    ScreenPorch.positive,
    lab = "square feets",
    title = "screen porch area")

Usando un modello di regressione lineare si può approssimare il rapporto tra le due variabili. Data come ipotesi nulla la non correttezza del modello, osserviamo che con un p-value di $ $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il portico con zanzariera, che è approssiabile da un modello lineare con pendenza positiva.

PoolArea

Questa variabile non viene messa in correlazione perché i dati sono troppo sbilanciati.

## PoolArea.exists
## FALSE  TRUE 
## 0.995 0.005

PoolQC

Questa variabile non viene messa in correlazione perché i dati sono troppo sbilanciati. Infatti la maggiorparte dei dati sta in una sola categoria.

## PoolQC.na
##  <NA>    Gd    Ex    Fa 
## 99.52  0.21  0.14  0.14

Fence

analysis.qualitative(
    Fence,
    lab = "quality",
    title = "fence quality")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ $ c’è un debolissimo supporto all’ipotesi nulla. Quindi c’è una correlazione abbastanza forte tra il prezzo di vendità e la qualità della recinzione.

Fence.exists <- factor(
    !is.na(Fence),
    levels = c(F, T), 
    labels = c("No", "Yes"))

analysis.qualitative(
    Fence.exists,
    lab = "exists",
    title = "fence exists")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-11} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e l’esistenza della recinzione

MiscFeature

Questa variabile non viene messa in correlazione perché i dati sono troppo sbilanciati. Infatti la maggiorparte dei dati sta nella categoria NA.

## MiscFeature.na
##  <NA>  Shed  Gar2  Othr  TenC 
## 96.30  3.36  0.14  0.14  0.07

MiscVal

Questa variabile non viene messa in correlazione perché i dati sono troppo sbilanciati. Infatti la maggiorparte dei dati sta nella categoria 0 (non ci sono costi).

## 
##     0   > 0 
## 96.44  3.56

MoSold

MoSold.fact <- factor(
    MoSold,
    levels = 0:max(MoSold))

analysis.qualitative(
    MoSold.fact,
    lab = "month",
    title = "month sold")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ $ c’è supporto all’ipotesi nulla. Quindi non c’è una correlazione tra il prezzo di vendità e il mese di vendità.

YrSold

YrSold.fact <- factor(
    YrSold,
    levels = 0:max(YrSold))

analysis.qualitative(
    YrSold.fact,
    lab = "year",
    title = "year sold")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ $ c’è supporto all’ipotesi nulla. Quindi non c’è una correlazione tra il prezzo di vendità e l’anno di vendita.

SaleType

analysis.qualitative(
    SaleType,
    horizontal = T,
    lab = "type",
    title = "sale type")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-42} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e il tipo di contratto di vendita.

SaleCondition

analysis.qualitative(
    SaleCondition,
    horizontal = T,
    lab = "condition",
    title = "sale condition")

Data l’uguaglianza delle medie come ipotesi nulla, osserviamo che con un p-value di $ ^{-44} $ non c’è supporto all’ipotesi nulla. Quindi c’è una correlazione tra il prezzo di vendità e le condizioni di vendita.